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

Ekstrakcja danych MySQL z 3 tabel - złączenia i max

Chcesz maksimum grupowe :

SELECT * FROM Video JOIN (

  SELECT   VideoTags.tag_id, MAX(points) points
  FROM     Video JOIN VideoTags ON Video.id = VideoTags.video_id
  GROUP BY VideoTags.tag_id

) t USING (points) JOIN Tags ON t.tag_id = Tags.id

Zobacz go na sqlfiddle .

Pamiętaj, że to zapytanie zwraca wszystkie filmy mające maksymalną liczbę punktów w każdym tagu, więc więcej niż jeden rekord zostanie zwrócony dla powiązanych tagów. Jeśli chcesz zwrócić tylko jeden zapis w takich sytuacjach, określ, jak określić film, który powinien zostać zwrócony.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć unikalny klucz z tabeli mysql

  2. Uzupełnianie braków w datach zwróconych z bazy danych - czy możliwe jest rozwiązanie czysto SQL?

  3. MYSQL JOIN na wielu tabelach nie zwraca żadnych wyników

  4. Ostrzeżenie:mysql_query():Odmowa dostępu dla użytkownika 'admin'@'localhost' (przy użyciu hasła:NIE)

  5. MySQL:wiele tabel czy jedna tabela z wieloma kolumnami?