Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql bergabung dengan kueri untuk beberapa tag (hubungan banyak ke banyak) yang cocok dengan SEMUA tag?

Gunakan:

  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

Anda melewatkan klausa HAVING.

Tidak perlu LEFT JOIN jika Anda hanya menginginkan baris yang kedua tagnya ada.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat memuat Driver QMYSQL di PySide2

  2. flake8 mengeluh pada perbandingan boolean ==dalam klausa filter

  3. MySQLSyntaxErrorException saat mencoba menjalankan PreparedStatement

  4. Mendapatkan data dari beberapa tabel menjadi satu baris sambil menggabungkan beberapa nilai

  5. Menggunakan Kursor dalam Loop dari prosedur tersimpan