所以我坚持尝试制作一个 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
最佳答案
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)
关于mysql - 在 SQL 中,如何只获取整个表的单个列中具有相同值的条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939035/