现有两个表
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 1
select * from table1 where id not in(select id from table2);
|
5
feiyuanqiu 2014-11-24 12:24:14 +08:00 1
直接用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楼的方法
|