sql >> Database >  >> RDS >> Mysql

MySQL-gegevensextractie uit 3 tabellen - joins en max

U wilt het groepsgewijs maximum :

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

Bekijk het op sqlfiddle .

Merk op dat deze zoekopdracht alle retourneert video's met het maximale aantal punten binnen elke tag, dus er wordt meer dan één record geretourneerd voor gekoppelde tags. Als u in dergelijke situaties slechts één record wilt retourneren, geef dan aan hoe u kunt bepalen welke video moet worden geretourneerd.



  1. MariaDB JSON_REPLACE() uitgelegd

  2. Gids voor het ontwerpen van een database voor RBAC in MySQL

  3. mysql bestel varchar-veld als geheel getal

  4. Oracle verbinden met SQL Server vanuit Windows