Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como classificar a ordem de LEFT JOIN na consulta SQL?


Tente usar MAX com um 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;

Mais informações sobre GROUP BY


A cláusula group by é usada para dividir os registros selecionados em grupos com base em combinações exclusivas do grupo por colunas. Isso nos permite usar funções agregadas (por exemplo, MAX, MIN, SUM, AVG, ...) que serão aplicadas a cada grupo de registros por vez. O banco de dados retornará um único registro de resultado para cada agrupamento.

Por exemplo, se tivermos um conjunto de registros representando temperaturas ao longo do tempo e localização em uma tabela 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
...

Então, se quisermos encontrar a temperatura máxima por local, precisamos dividir os registros de temperatura em agrupamentos, onde cada registro em um determinado grupo tem o mesmo local. Queremos então encontrar a temperatura máxima de cada grupo. A consulta para fazer isso seria a seguinte:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;