1,使用select * from a,b这样,不加任何条件的查询,结果是a和b表关联显示,但是结果会重复好多遍
2,使用select * from a join b ,也是不加任何查询条件,结果和1一样的,ab并排显示但是结果重复好多遍
select * from a:
1 11
2 22
3 33
4 44
5 55
select * from b:
1 a
2 b
3 c
4 d
5 e
6 f
select * from a,b:
1 11 1 a
2 22 1 a
3 33 1 a
4 44 1 a
5 55 1 a
1 11 2 b
2 22 2 b
3 33 2 b
4 44 2 b
5 55 2 b
1 11 3 c
2 22 3 c
3 33 3 c
4 44 3 c
5 55 3 c
1 11 4 d
2 22 4 d
3 33 4 d
4 44 4 d
5 55 4 d
1 11 5 e
2 22 5 e
3 33 5 e
4 44 5 e
5 55 5 e
1 11 6 f
2 22 6 f
3 33 6 f
4 44 6 f
5 55 6 f
这是为什么?多表查询的顺序是什么呢?
我其实想要的结果是
1 11 1 a
2 22 2 b
3 33 3 c
4 44 4 d
5 55 5 e
null null 6 f
我该怎么做?当然了,直接用rightjoin加条件很简单了。但是不考虑a、b存在匹配条件的话怎么办?
直接
select * from a, b
会对两个表的行进行组合吧。试试 full join?