如何获取属于同一组的文章

c86crjj0  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(263)

我想检索属于同一组的同一篇文章的变体。dbm是mysql 5.7。
共有两个表:
文章
文章\u组
表项目包含以下字段:

article_id | title
1            first product
2            second prod
3            3rd prod
4            4th example

表1-u组:

group_id | article_id
1          1
1          2
1          3
2          4

在本例中,我希望检索与第1条在同一组中的所有其他文章。这就是第二条和第三条。
我的最佳拍摄,但有点复杂:

SELECT 
    art.article_id, 
    model
FROM 
    articles art
INNER JOIN 
    articles_group art_g ON art.article_id = art_g.article_id
WHERE art_g.group_id = (
    SELECT ag.group_id
    FROM articles a
    INNER JOIN articles_group ag ON a.article_id = ag.article_id
    WHERE a.article_id = 1
)

如何以简单的方式检索属于给定文章的同一组的所有其他文章?如果有更好的设置,我仍然可以改变shema。

ix0qys7i

ix0qys7i1#

假设你的文章是1。要获取给定文章的同一组中的所有文章,可以使用 subquery 得到 group_id 特定物品的名称。然后使用外部查询获取同一组中的所有文章。

SELECT a.article_id, a.title
FROM articles a
JOIN articles_groups g ON a.ref_id = g.ref_id
WHERE g.group_id = (
    SELECT g.group_id
    FROM articles a
    JOIN articles_groups g ON a.ref_id = g.ref_id
    WHERE a.article_id = '1'
)

相关问题