sql >> データベース >  >> RDS >> Mysql

特定のタグを持つすべての投稿を取得し、SQLを使用して結果に他のすべてのタグを保持します

    データベースに2つのリクエストを送信していただければ幸いです。

    まず、特定のタグのすべての投稿を取得します:

    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)
    

    次に、投稿を介して探しているものにリンクされたタグを付けたいと思います:

    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. データベーステーブルの場所-MySQL-WindowsXP

    2. plsqlを使用したユーザー定義のカスタム集計関数

    3. MySQLの動的クロスタブ

    4. 影響を受けるOracleJDBCのbatchUpdate行は常に-2です(Statement.SUCCESS_NO_INFO)