sql >> Database >  >> RDS >> Mysql

Krijg alle berichten met een specifieke tag en bewaar alle andere tags op resultaten met SQL

Ik neem aan dat je graag twee verzoeken naar de database stuurt.

Verkrijg eerst alle berichten voor een bepaalde tag:

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)

Ten tweede wil je, denk ik, tags toevoegen aan degene die je zoekt via berichten:

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. Opgeslagen procedure met Alembic:MySQL-syntaxisfout

  2. Kan geen verbinding maken met mysql vanuit visual studio 2015

  3. Meerdere kolommen toevoegen NA een specifieke kolom in MySQL

  4. Hoe vindt u de query's die een andere query blokkeren?