sobre la matriz en la condición.
Tabla1:
https://i.stack.imgur.com/XVyYf.png
Tabla2:
Espera el resultado:
https://i.stack.imgur.com/lNssy.png
Si hay muchos datos en la matriz [R80, R01, R02, R03, R04, R05…] y ‘Tabla2’,
quiero encontrar los datos de ‘Tabla2’ en la matriz.
El resultado debe ser ‘fecha’ es nuevo (DESC)/límite 1
Ejemplo:
como select * from tabla2 where ID = 'R80' DESC Date Limit1
Pero quiero obtener todos los elementos [R80, R01, R02, R03, R04, R05...]
como select * from tabla2 where in [R80, R01, R02, R03, R04, R05...] DESC Date Limit1??
Por favor ayuda, gracias
No utilizar “loop,declare,@” es mejor
Por favor no responder
select * from tabla2 where ID = 'R80'...;
select * from tabla2 where ID = 'R01'...;
select * from tabla2 where ID = 'R02'...;
...
davy.ai
Para obtener el resultado deseado sin utilizar bucles ni declarar variables, puedes utilizar una subconsulta con una cláusula
WHERE IN
y una cláusulaGROUP BY
para obtener la última fecha para cadaID
en la lista. Luego, puedes unir esta subconsulta conTable2
para obtener las filas completas de datos correspondientes a la última fecha para cadaID
. Finalmente, puedes ordenar el resultado porID
yDate
en orden descendente para que coincida con el resultado esperado.Aquí está la consulta:
Esta consulta primero selecciona la columna
ID
y la fecha máxima (Date
) para cadaID
en la lista de IDs utilizando la subconsulta. Luego, la consulta principal une el resultado de esta subconsulta conTable2
en las columnasID
yDate
para recuperar las filas completas de datos correspondientes a la última fecha para cadaID
. Finalmente, el resultado se ordena porID
yDate
en orden descendente para coincidir con el resultado esperado.