所以我坚持试图创建一个SQL来抓住每个具有相同值的特定COLUMN的ROW。
例:
表:买家
aID | bID aID | bID
1 | 3 1 | 3
1 | 4 1 | 2
1 | 2 2 | 2
1 | 5 1 | 4 this one also should return aID = 1
since aID =1 is present for every different bID
我想我很接近:
SELECT aID
FROM buyers
WHERE COUNT(bID) = (SELECT S1.aID
FROM buyers S1,
buyers S2
WHERE S1.aID = S2.bID
AND S2.bID <> S1.bID)
它必须在列中的每一行中,或者如果一个aID
不同则不要得到它,那么就不要得到它。 aID
必须与每bID
答案 0 :(得分:3)
SELECT aID
FROM buyers
GROUP BY aID
HAVING COUNT(*) = (SELECT COUNT(distinct bID) FROM buyers)
这假设每个aID,bID
组合都是唯一的。如果可以针对同一bID
重复aID
,则需要执行以下操作:
SELECT aID
FROM (SELECT DISTINCT aID, bID FROM buyers)
GROUP BY aID
HAVING COUNT(*) = (SELECT COUNT(distinct bID) FROM buyers)
答案 1 :(得分:0)
怎么样
Select Distinct aId
From Table t
Where Not Exists
(Select * From table i
Where bId <> t.bId
And Not Exists
(Select * From table
Where bId = i.bId
And aId <> t.aId))
这说:
显示aId
的所有不同值,以便aId
值不同的行都不包含bId
值,因此甚至没有一行bId
1}}和aId
相同。