mysql - 如何从 A 表中选择 B 表中不存在的值?

标签 mysql sql

我在 mySQL 数据库中有 2 个表:A 和 B。

a、b、c 列。

表A:

 a(1) = 1 
 a(2) = 2
 a(3) = 3

表 B:

 a(1) = 1 
 a(2) = 2

所以,我们可以看到在 B 表中没有 a = 3 的行。我如何请求 DB 找到它?

因此响应(一行)可能如下所示:

a(1) = 3 
b(1) =..
c(1) =.. 

最佳答案

一个选项使用 EXISTS:

SELECT a.a
FROM TableA a
WHERE NOT EXISTS (SELECT 1 FROM TableB b WHERE b.a = a.a);

另一种选择是进行反加入:

SELECT a.a
FROM TableA a
LEFT JOIN TableB b
    ON a.a = b.a
WHERE b.a IS NULL;

关于mysql - 如何从 A 表中选择 B 表中不存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794791/

相关文章:

mysql - 如何在 SELECT 语句中为非特定键选择 GROUPED BY 平均值

php - 使用数据库查询结果填充下拉列表

MySQL Count 分组后特定列出现的次数

带有 WHERE 子句的 MySql 内连接

php - 如何在将 .CSV 格式的文件导入 SQL 时验证员工 ID?

mysql - SQL:按一列中相同值的数量排序,无需聚合/收缩

java - 使用 JDBC 在列名称中使用问号的 Filemaker SQL 查询

php - UTF-8 数据库问题

mysql - SQL 查找两个计数的百分比

php - 更新具有两个文件字段的表单