现有两个表
table1:
id, name
1, 张一
2, 张二
3, 张三
4, 张四
table2:
id, name
1, 张一
3, 张三
5, 张五
问题:需要查询出table1中不在table2中的记录,即
id, name
2, 张二
4, 张四
由于对数据库只是学了个皮毛,希望各位指点
ps:我现在可以查出table1中在table2中的记录,SQL如下
SELECT * FROM table1
right join table2
on table1.id = table2.id
再次表示感谢 :)
![]() | 1 xia0chun OP |
![]() | 2 fengchang 2014-11-24 11:12:44 +08:00 把right join改成inner join就行了 |
![]() | 3 xia0chun OP @fengchang 我想要查出table1中 不在 table2中的记录,要是用inner join应该是找出table1和table2中相同的记录吧? |
![]() | 4 Seans 2014-11-24 11:26:05 +08:00 ![]() select * from table1 where id not in(select id from table2); |
5 feiyuanqiu 2014-11-24 12:24:14 +08:00 ![]() 直接用1L的SQL就行了,后面的朋友们的回复都不太靠谱... |
![]() | 6 xia0chun OP |
![]() | 8 Raidal 2014-11-24 14:40:03 +08:00 刚刚正好用left join和where写了条查询差集的sql |
![]() | 9 coolzjy 2014-11-24 14:49:55 +08:00 为什么不用not in? |
![]() | 10 iyaozhen 2014-11-24 16:27:00 +08:00 4楼方法更简单除暴吧。 |
![]() | 11 kenzi 2014-11-24 18:42:22 +08:00 via Android 我都用4楼的方法 |