MySQL Forums
Forum List  »  Spanish

Tengo en cada registro de tabla1 el nombre de columna a actualizar de tabla2 mediante un update join pero sin lograrlo
Posted by: Carlos F
Date: July 14, 2021 12:44PM

Nota: tabla1 contiene columna (llave1) con valores como: S_01 ó S_02, etc.

tabla2 tiene columnas S_01, S_02, etc. como si fuera un arreglo.

Mi idea es utilizar el contenido de tabla1.llave1 como el nombre de la columna S_01, etc.) de tabla2 y realizar un update.

datos:

tabla1

fecha_actlzn,fec_def,def_d,ww,yy,llave,llave1
13/07/2021,10/04/2020,1,15,2020,1001,S_15
13/07/2021,13/04/2020,1,16,2020,1001,S_16
13/07/2021,19/04/2020,1,17,2020,1001,S_17
13/07/2021,27/04/2020,1,18,2020,1001,S_18
13/07/2021,08/05/2020,1,19,2020,1001,S_19
13/07/2021,10/05/2020,1,20,2020,1001,S_20
13/07/2021,21/05/2020,2,21,2020,1001,S_21


tabla2:

cveent,Caso,S_1,S_2,S_3,S_4,S_5,S_6,S_7,S_8,S_9,S_10
1001,def,0,0,0,0,0,0,0,0,0,0
1002,def,0,0,0,0,0,0,0,0,0,0
1003,def,0,0,0,0,0,0,0,0,0,0
1004,def,0,0,0,0,0,0,0,0,0,0
1005,def,0,0,0,0,0,0,0,0,0,0
1006,def,0,0,0,0,0,0,0,0,0,0
1007,def,0,0,0,0,0,0,0,0,0,0
1008,def,0,0,0,0,0,0,0,0,0,0
1009,def,0,0,0,0,0,0,0,0,0,0
1010,def,0,0,0,0,0,0,0,0,0,0
1011,def,0,0,0,0,0,0,0,0,0,0
1999,def,0,0,0,0,0,0,0,0,0,0


Primer intento:

select * from tabla1 s
join tabla2 m
on s.llave = m.cveent ;
Update m
set @var1 ='m.'
set @var2 = (select column_name from information_schema.columns where table_name = 'm' and column_name = 's.llave1')
set @var1@var2 = s.def_d;

Segundo intento:

Update m
select * from tabla1 s join tabla2 m on s.llave = m.cveent
set @var1 ='m.'
set @var2 = s.llave1
set @var1@var2 = s.def_d;

Tercer intento:

Update m , tabla1 s
join tabla2 m on s.llave = m.cveent
set @var1 ='m.'
set @var2 = s.llave1
set @var1@var2 = s.def_d;

En los 3 intento me marca error de sintaxis.

He buscado en los foros correspondientes pero no he encontrado algo similar ni respuesta, puede alguien ayudarme?
Estoy aprendiendo en forma autodidacta.
Al parecer mysql no maneja "arreglos" de columnas como para utilizar un indice de búsqueda.
Daré un enorme avance si alguien me ayuda a resolver este asunto.
Espero su pronta respuesta, Gracias!

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.