簡體   English   中英

如何過濾連接兩個表的SQL查詢,其中項與其連接的項太多相關聯?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM