sql >> Databasteknik >  >> RDS >> Mysql

Få alla inlägg som har en specifik tagg och behåll alla andra taggar på resultat med SQL

Jag antar att du gärna skickar två förfrågningar till databasen.

Först ska du hämta alla inlägg för en given tagg:

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)

För det andra vill du tagga, antar jag, länkad till den du letar efter via inlägg:

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. Hur kan pg_column_size vara mindre än octet_length?

  2. Finns det några negativa effekter när du ändrar mysql-tabellkodning?

  3. Hur man löser MySQL max_user_connections-felet

  4. Kan jag gå med över datakällor i SSRS?