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

Dapatkan semua posting yang memiliki tag tertentu dan simpan semua tag lain pada hasil dengan SQL

Saya berasumsi Anda senang mengirim dua permintaan ke database.

Pertama, dapatkan semua postingan untuk tag tertentu:

SELECT * FROM blog_posts bp 
WHERE EXISTS (SELECT * FROM blog_tags bt INNER JOIN
               tags t ON t.id = bt.tag_id
              WHERE bp.id = bt.post_id
               AND t.tag = @SearchTag)

Kedua, Anda ingin menandai, saya kira, ditautkan ke yang Anda cari melalui pos:

SELECT * FROM tags t
WHERE EXISTS ( -- Here we link two tags via blog_tags
               SELECT * FROM blog_tags bt1 INNER JOIN
               blog_tags bt2 ON bt1.post_id = bt2.post_id
                     AND bt1.tag_id != bt2.tag_id INNER JOIN
               tags t ON t.id = bt1.tag_id
               WHERE t.tag = @SearchTag
                  AND t.id = bt2.tag_id
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP vs Kinerja MySQL ( jika , fungsi ) dalam kueri

  2. Apakah menjatuhkan tabel di MySQL juga menjatuhkan indeks?

  3. Beberapa indeks MySQL vs indeks multi-kolom untuk pencarian

  4. Memasukkan dari MS SQL Server ke database MySQL

  5. Bagaimana cara membuat kunci asing untuk 2 tabel?