sql >> Databáze >  >> RDS >> Mysql

Mysql spojovací dotaz pro více značek (vztah mnoho k mnoha), který odpovídá VŠEM značkám?

Použijte:

  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

Chyběla vám klauzule HAVING.

Není nutné LEFT JOIN, pokud chcete pouze řádky, kde existují oba tagy.




  1. Jak vložit záznam a vrátit nově vytvořené ID pomocí jednoho příkazu SqlCommand?

  2. V MySQL nelze uložit znaky UTF8

  3. nastavení globálního sql_mode v mysql

  4. Mysql:Optimalizace hledání superuzlu ve stromu vnořených sad