Mysql 用于选择具有多个主键表链接的外键行的SQL查询
我有一个(简化的)场景是这样的:Mysql 用于选择具有多个主键表链接的外键行的SQL查询,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我有一个(简化的)场景是这样的: select * from documents where id in ( select doc_id from doc_pictures group by doc_id having count(1) > 1
select
*
from
documents
where
id in (
select
doc_id
from
doc_pictures
group by
doc_id
having
count(1) > 1
)
文档表:
id | title | text
===========================
1 | Title1 | "AAA"
2 | Title2 | "BBB"
3 | Title3 | "CCC"
文档图片
id | doc_id | url
===================================================
1 | 1 | "http://some.domain.com/1.jpg"
2 | 1 | "http://some.domain.com/2.jpg"
3 | 2 | "http://some.domain.com/3.jpg"
4 | 4 | "http://some.domain.com/3.jpg"
让我们将这些表命名为文档
和文档图片
。我正在尝试创建一个查询,该查询将返回包含多张图片的所有文档。在本例中,这意味着仅返回id为1
的文档
限制和假设:
id | title | text
===========================
1 | Title1 | "AAA"
2 | Title2 | "BBB"
3 | Title3 | "CCC"
数据库是Mysql这可用于获取文档ID
select
doc_id,
count(1)
from
doc_pictures
group by
doc_id
having
count(1) > 1
然后,您可以使用这些ID在文档
表上的where in
大概是这样的:
select
*
from
documents
where
id in (
select
doc_id
from
doc_pictures
group by
doc_id
having
count(1) > 1
)
这可用于获取文档ID
select
doc_id,
count(1)
from
doc_pictures
group by
doc_id
having
count(1) > 1
然后,您可以使用这些ID在文档
表上的where in
大概是这样的:
select
*
from
documents
where
id in (
select
doc_id
from
doc_pictures
group by
doc_id
having
count(1) > 1
)
问题是什么?它没有返回正确的结果。上面投票的答案是正确的。问题是什么?它没有返回正确的结果。上面投票的答案确实如此。