sql >> Database >  >> RDS >> Mysql

hoe de volgorde van LEFT JOIN in SQL-query te sorteren?

Probeer MAX . te gebruiken met een 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;

Meer informatie over GROUP BY

De group by-clausule wordt gebruikt om de geselecteerde records in groepen te splitsen op basis van unieke combinaties van de group by-kolommen. Dit stelt ons vervolgens in staat om geaggregeerde functies te gebruiken (bijv. MAX, MIN, SUM, AVG, ...) die beurtelings op elke groep records worden toegepast. De database retourneert een enkel resultaatrecord voor elke groepering.

Als we bijvoorbeeld een reeks records hebben die temperaturen in tijd en locatie weergeven in een tabel als deze:

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

Als we vervolgens de maximale temperatuur per locatie willen vinden, moeten we de temperatuurrecords opsplitsen in groepen, waarbij elk record in een bepaalde groep dezelfde locatie heeft. We willen dan de maximale temperatuur van elke groep vinden. De vraag om dit te doen is als volgt:

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


  1. Een inventarisdatabase maken in Microsoft Access

  2. Meteoor met mysql

  3. gegevens geladen uit SQLitE-database worden niet opgeslagen in de modelklasse ArrayList android

  4. Eén record verwijderen uit Entity Framework?