[英]SQL query for selecting foreign-key rows with more than one link to the primary-key table
我有一個(簡化的)場景,像這樣:
文件表 :
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"
讓我們命名這些表documents
和doc_pictures
。 我正在嘗試創建一個查詢,該查詢將返回具有多個圖片的所有文檔。 在此示例中,這意味着僅返回id為1
的文檔。
局限性和假設 :
該數據庫是Mysql
這可用於獲取文檔ID。
select
doc_id,
count(1)
from
doc_pictures
group by
doc_id
having
count(1) > 1
然后,您可以使用這些ID在documents
表中使用where in
。
像這樣:
select
*
from
documents
where
id in (
select
doc_id
from
doc_pictures
group by
doc_id
having
count(1) > 1
)
select doc_id
from doc_pictures
group by doc_id
having count(distinct url) > 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.