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

Uzyskiwanie najwyższych wyników w JOIN

Możesz użyć funkcji MAX i podselekcji, aby uzyskać maksymalną ofertę dla każdej aukcji. Jeśli dołączysz do tego podwyboru z innymi stołami i ustawisz klauzulę where w następujący sposób, powinieneś otrzymać to, czego szukasz.

SELECT a.id, a.title, ab.bid_points, u.display_name 
FROM Auction AS a
INNER JOIN (SELECT auction_id, MAX(bid_points) AS maxAmount FROM auction_bids GROUP BY auction_id) AS maxBids ON maxBids.auction_id = a.id
INNER JOIN auction_bids AS ab ON a.id = ab.auction_id
INNER JOIN users AS u ON u.id = ab.user_id
WHERE ab.auction_id = maxBids.auction_id AND ab.bid_amount = maxBids.maxAmount

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Struktura koszyka MySQL

  2. Zapytanie o interwały dat SQL

  3. Jak znaleźć katalog danych mysql z wiersza poleceń w systemie Windows?

  4. Błąd krytyczny:nie można otworzyć i zablokować tabel uprawnień:tabela „mysql.host” nie istnieje

  5. Zestaw wyników mysql jest zawsze pusty