[英]How do I filter an SQL query that joins two tables, where an item is associated with too many items it is joined to?
有兩個表:A,行(row_id,column1,...)和B,行(column2,...)。
Select * from A
join B on A.column1 = B.column2
表B中可以有1個或多個記錄,其中column2 = A.column1。 B中的每條記錄在A中都有匹配的記錄,但並非A中的每條記錄都有B中的記錄。
獲取表A中的row_id
的有效查詢是什么,表B中有超過100條記錄與它相關聯?
這將為您提供表A中的所有列:
select A.*
from A
inner join (
select column2
from B
group by column2
having count(*) > 100
) BC on A.column1 = BC.column2
如果您只需要ID,則可以執行以下操作:
select column2
from B
group by column2
having count(*) > 100
SELECT `row_id`
FROM `A`
JOIN `B` ON (`B`.`column2` = `A`.`column1`)
GROUP BY `A`.`row_id`
HAVING COUNT(*) > 100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.