mysql - 如何从两个表中获取不匹配的记录

标签 mysql

查看这两个示例表:

表 1:

id    acc_no    name
------------------------
1     14        aaaa
2     16        bbbb
3     18        ccccc
4     25        wwww
5     27        xxxxxxx
6     28        zzzzzzz

表 2:

sr no   acc_no  amount
----------------------
1       14      2000
2       16      2344
3       18      3200

我需要根据 acc_no 获取与表 1 不匹配的记录,例如:

输出:

id   acc_no   name
---------------------
4    25       wwww
5    27       xxxxxxx
6    28       zzzzzzz

当我尝试使用以下查询时,结果不可靠:

SELECT t1.* 
FROM table1 t1
     LEFT OUTER JOIN table2 t2 ON t1.acc_no = t2.acc_no
WHERE t2.acc_no IS NULL

提出你的建议。得到以上输出的正确 SQL 查询是什么?

最佳答案

尝试:

SELECT * 
FROM table1 t1
WHERE t1.acc_no NOT IN (SELECT acc_no FROM table2)

关于mysql - 如何从两个表中获取不匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14827767/

相关文章:

python - 使用 mysql-python 执行 Select 语句给出 None

mysql - 为表创建两个别名

带有参数的Mysql不起作用

mysql - 在 Node JS Handlebars JS MySql 中发送值

php - Redbeanphp - 多条件安全查询

javascript - jQuery通过Checkbox更新mysql

java - 创建一个查找并匹配用户输入的网页爬虫

php - 如何在异步任务上加载图像

php - 如何使用PHP-MySQL动态更改网站的语言?

mysql - 如何将 NOT IN 子查询重写为连接