sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo ordenar el orden de LEFT JOIN en la consulta SQL?

Intenta usar MAX con un GROUP BY .

SELECT u.userName, MAX(c.carPrice)
FROM users u
    LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;

Más información sobre GROUP BY

La cláusula group by se usa para dividir los registros seleccionados en grupos basados ​​en combinaciones únicas de las columnas group by. Esto nos permite usar funciones agregadas (por ejemplo, MAX, MIN, SUM, AVG, ...) que se aplicarán a cada grupo de registros por turno. La base de datos devolverá un único registro de resultados para cada agrupación.

Por ejemplo, si tenemos un conjunto de registros que representan temperaturas a lo largo del tiempo y la ubicación en una tabla como esta:

Location   Time    Temperature
--------   ----    -----------
London     12:00          10.0
Bristol    12:00          12.0
Glasgow    12:00           5.0
London     13:00          14.0
Bristol    13:00          13.0
Glasgow    13:00           7.0
...

Luego, si queremos encontrar la temperatura máxima por ubicación, debemos dividir los registros de temperatura en grupos, donde cada registro en un grupo en particular tiene la misma ubicación. Entonces queremos encontrar la temperatura máxima de cada grupo. La consulta para hacer esto sería la siguiente:

SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;