Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie o sprzężenie Mysql dla wielu tagów (relacja wiele-do-wielu), które pasują do WSZYSTKICH tagów?

Użyj:

  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

Brakowało klauzuli HAVING.

Nie ma potrzeby LEFT JOIN, jeśli chcesz tylko wiersze, w których istnieją oba tagi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:ustawienie trybu sql_mode na stałe

  2. mysql wybierz daty bez tabel

  3. Czy dobrze jest użyć htmlspecialchars() przed wstawieniem do MySQL?

  4. Jak wstawić wartość hebrajską do bazy danych mysql w php

  5. Jak mogę przepisać to zapytanie, aby uniknąć błędu:Nie można określić tabeli docelowej do aktualizacji w klauzuli FROM