sql >> Databasteknik >  >> RDS >> Mysql

MySQL-dataextraktion från 3 tabeller - joins och max

Du vill ha gruppvis maximalt :

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

Se den på sqlfiddle .

Observera att denna fråga returnerar alla videor som har det maximala antalet poäng inom varje tagg, så mer än en post kommer att returneras för kopplade taggar. Om du bara vill returnera en post i sådana situationer, vänligen ange hur du bestämmer vilken video som ska returneras.



  1. Analysera JSON till mySQL

  2. Proaktiva SQL Server Health Checks, Del 3:Inställningar för instans och databas

  3. Hur hämtar man fälttyp och värde?

  4. Välj slumpmässig rad för varje grupp