我想检索属于同一组的同一文章的变体。 DBM是MySQL 5.7。
有2个表:
表文章具有以下字段:
article_id | title
1 first product
2 second prod
3 3rd prod
4 4th example
表articles_groups:
group_id | article_id
1 1
1 2
1 3
2 4
在此示例中,我要检索与第1条在同一组中的所有其他文章。因此应该是第2条和第3条。
我最好的镜头,但是有点复杂:
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。
答案 0 :(得分:0)
假设您给定的文章为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'
)