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

Mysql banyak ke banyak kueri hubungan. Bagaimana cara mendapatkan semua tag dari posting yang difilter?

Nah, ini yang terbaik yang bisa saya pikirkan pada jam 4:30 pagi:

SELECT distinct tag_id FROM
    (SELECT pt1.post_id FROM pt1
    INNER JOIN tags t1 ON (pt1.tag_id = t1.id)
    WHERE t1.id IN (1, 2)
    GROUP BY pt1.post_id
    HAVING COUNT(DISTINCT t1.id) = 2) MatchingPosts
INNER JOIN pt2 ON (MatchingPosts.post_id = pt2.post_id)
WHERE (pt2.tag_id NOT IN (1, 2))

(1, 2) adalah tag yang Anda cari dan jumlahnya, tentu saja, harus sesuai dengan jumlah tag yang Anda gunakan untuk memfilter.

Berikut adalah contoh (Perhatikan saya sedikit mengubah data)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mencari bidang tanggal untuk String menggunakan API Kriteria JPA

  2. CakePHP meminta garis lintang bujur terdekat dari database

  3. Menggunakan kueri MySQL dengan variabel dari C#

  4. MYSQL Insert Abaikan pada satu kolom

  5. pandasql tidak akan mengimpor :ImportError:tidak dapat mengimpor nama to_sql