sql >> Databasteknik >  >> RDS >> Mysql

Mysql join-fråga för flera taggar (många-till-många-relationer) som matchar ALLA taggar?

Använd:

  SELECT * 
    FROM OBJECTS o
    JOIN OBJECTSTAGS ot ON ot.object_id = o.id
    JOIN TAGS t ON t.id = ot.tag_id
   WHERE t.name IN ('tag1','tag2')
GROUP BY o.id
  HAVING COUNT(DISTINCT t.name) = 2

Du saknade HAVING-satsen.

Det finns ingen anledning att LEFT JOIN om du bara vill ha rader där båda taggarna finns.




  1. PHP - MySQL-fråga med paginering

  2. Hur paginerar man frågeresultat för Infinite Scroll?

  3. Hur importerar man en enorm CSV-fil med 200,00 rader till MySQL (asynkron och snabb)?

  4. Intervjutips för SQL-databasadministratör