1、印象中,左连接情况是用左表的记录,去右表关联,若查询到关联,就不再继续往下找。意思是取第一条关联的记录。
查询到结尾没有找到关联的,列显示为null。
但是,今天本人做的一个测试,发现和理解的不一样,请知道的高手指点一下。
左表stu
id name
1 Kobe
2 James
3 Bosh
右表class
id s_id c_id
1 1 1
1 1 2
select * from stu s left join class c on s.id=c.stu_id; 结果是有4条记录,本人理解是有3条记录。
不知道是不是mysql版本问题造成的,还是本人过去的理解是错误的。
oracle是3条记录,对不对?
查询到结尾没有找到关联的,列显示为null。
但是,今天本人做的一个测试,发现和理解的不一样,请知道的高手指点一下。
左表stu
id name
1 Kobe
2 James
3 Bosh
右表class
id s_id c_id
1 1 1
1 1 2
select * from stu s left join class c on s.id=c.stu_id; 结果是有4条记录,本人理解是有3条记录。
不知道是不是mysql版本问题造成的,还是本人过去的理解是错误的。
oracle是3条记录,对不对?
解决方案
20
you多少就关联多少,不管你内联还是外联,你想取其中一条必须指明或说去重
10
“若查询到关联,就不再继续往下找。” 题主过去的理解是错误的。