mysql - 在 SQL 中,如何只获取整个表的单个列中具有相同值的条目?

标签 mysql sql

所以我坚持尝试制作一个 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)

FIDDLE

这假设每个 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/

相关文章:

SQL MOVE记录到另一个表

MYSQL根据年龄选择生日

mysql - 如何防止mysql创建mysql-bin.00000 x文件?

php - 搜索以特定词为起始词的记录

php - 我想将数据插入我的数据库,但它不起作用

mysql - 在Mysql中用条件识别具体的id

mysql - QODBC 连接字符串格式

mysql - 如何优化 MySQL 索引/查询以进行模块化搜索?

sql - 将 Sybase ASE 特定的 *= 和 =* 转换为 LEFT/RIGHT OUTER JOIN

php - 使用 mysqli 查询失败