Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak posortować kolejność LEFT JOIN w zapytaniu SQL?

Spróbuj użyć MAX z 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;

Dalsze informacje o GROUP BY

Klauzula group by służy do dzielenia wybranych rekordów na grupy na podstawie unikalnych kombinacji grupy według kolumn. To pozwala nam na użycie funkcji agregujących (np. MAX, MIN, SUM, AVG, ...), które zostaną zastosowane kolejno do każdej grupy rekordów. Baza danych zwróci pojedynczy rekord wyników dla każdej grupy.

Na przykład, jeśli mamy zestaw rekordów reprezentujących temperatury w czasie i położenie w takiej tabeli:

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

Następnie, jeśli chcemy znaleźć maksymalną temperaturę według lokalizacji, musimy podzielić rekordy temperatury na grupy, w których każdy rekord w określonej grupie ma tę samą lokalizację. Następnie chcemy znaleźć maksymalną temperaturę każdej grupy. Zapytanie, aby to zrobić, wyglądałoby następująco:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy przechowywanie plików graficznych w bazie danych Mongo to dobry pomysł?

  2. Zaznacz wyszukiwany tekst w wyszukiwarce mysql php

  3. Czy 'false' może pasować do jakiegoś ciągu w mysql?

  4. MySQL INSERT IF (niestandardowe instrukcje if)

  5. MySQL TIMEDIFF() vs TIMESTAMPDIFF():jaka jest różnica?