estoy ejecutando una consulta sencilla con una unión, similar aconsulta SQL con el límite de filas de una tabla, no el conjunto de resultados
SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON ... LIMIT 5
Como t1
tiene muchas filas en-t2
(cualquier número por encima del 2) la instrucción LIMIT no devuelve las primeras 5 filas de t1
y las entradas correspondientes de t2
, sino 5 filas que generalmente incluyen 2-3 filas de t1
.
¿Cómo puedo escribir esta consulta para obtener las primeras 5 filas de t1
y las entradas correspondientes de t2
?
Usando MySQL 5.0.45.
Tenga en cuenta que esta solución tiene problemas de escalabilidad con MySQL, además de no funcionar si desea PEDIR POR un campo en t2. – hobodave
@hobodave Afortunadamente, I 'ORDER BY' un campo en t1. –
@Robert: Puede encontrar que necesita aplicar el ORDER BY dos veces: una vez dentro de la consulta interna para seleccionar las primeras cinco filas y luego otra vez en la consulta externa para garantizar que los resultados se devuelvan en el mismo orden. –