mysql - 选择特定字段没有其他记录的行

标签 mysql

大家好,我有下表:

ID - COL_A - COL_B

我需要检索所有 COL_A = 1 的记录,并且 COL_A = 1 的 COL_B 不得有其他 COL_A = 2 的记录。

你能帮我吗?

谢谢

最佳答案

这是一个不存在的情况,我认为:

SELECT *
FROM mytable AS t1
WHERE COL_A = 1 AND 
      NOT EXISTS (SELECT 1
                  FROM mytable
                  WHERE t1.COL_B = t2.COL_B AND COL_A = 2)  

您还可以使用LEFT JOIN:

SELECT t1.*
FROM mytable AS t1
LEFT JOIN mytable AS t2 ON t1.COL_B = t2.COL_B AND t2.COL_A = 2
WHERE t1.COL_A = 1 AND t2.COL_A IS NULL

关于mysql - 选择特定字段没有其他记录的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851635/

相关文章:

php - 加入多个表和搜索参数

mysql - 使用 select 和 case 'when/then' 进行更新

php - 多次使用 foreach

mysql - SQL 语句中的 SQL 语句

MySQL 服务器设置

php - 如何通过php从mysql数据库获取单个参数?

mysql - 将图像存储到数据库 blob;从数据库检索到 Picturebox

mysql - 如果我为自增字段指定任何值,如何获取下一个或上一个值?

mysql - 如何在mysql存储过程中声明变量?

java - 如何在Java中选择数组中的变量?