Mysql
 sql >> Database >  >> RDS >> Mysql

Estrazione dati MySQL da 3 tabelle - join e max

Vuoi il massimo a livello di gruppo :

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

Guardalo su sqlfiddle .

Nota che questa query restituisce tutto video con il numero massimo di punti all'interno di ciascun tag, quindi verrà restituito più di un record per i tag legati. Se desideri restituire un solo record in tali situazioni, specifica come determinare il video che deve essere restituito.