sql >> Database teknologi >  >> RDS >> Mysql

hvordan sorteres rækkefølgen af ​​LEFT JOIN i SQL-forespørgsel?

Prøv at bruge MAX med en 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;

Yderligere information om GROUP BY

Group by-udtrykket bruges til at opdele de valgte poster i grupper baseret på unikke kombinationer af gruppen efter kolonner. Dette giver os så mulighed for at bruge aggregerede funktioner (f.eks. MAX, MIN, SUM, AVG, ...), som vil blive anvendt på hver gruppe af poster efter tur. Databasen returnerer en enkelt resultatpost for hver gruppering.

For eksempel, hvis vi har et sæt poster, der repræsenterer temperaturer over tid og placering i en tabel som denne:

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
...

Så hvis vi vil finde den maksimale temperatur efter sted, så skal vi opdele temperaturposterne i grupperinger, hvor hver post i en bestemt gruppe har den samme placering. Vi vil så finde den maksimale temperatur for hver gruppe. Forespørgslen for at gøre dette ville være som følger:

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


  1. MySQL SIGN() Funktion – Find ud af, om et tal er positivt eller negativt i MySQL

  2. PDOException SQLSTATE[HY000] [2002] Ingen sådan fil eller mappe

  3. MSSQL optage dato/klokkeslæt automatisk sletning

  4. SQL Server 2016:Opret en visning