记录一道sql面试题3
题目:
有一张表a,和一张表b
a:
id age name
1 18 kethy
2 32 kavin
3 22 tony
b:
id dept description
2 sale today
2 dev sunday
提问:将a和b两张表左连接查询,条件是a.id = b.id会得到什么结果。查询的字段为a.*,b.* 。
说明:
- 左表 a 中 id=1 和 id=3 的记录在右表 b 中无匹配,因此 b 的字段均为 NULL。
- 左表 a 中 id=2 的记录在右表 b 中有 2 条匹配记录(id=2 的两条数据),因此会生成 2 条结果,分别对应 b 中的两条记录。
查询结果如下:
id | age | name | id | dept | description |
---|---|---|---|---|---|
1 | 18 | kethy | NULL | NULL | NULL |
2 | 32 | kavin | 2 | sale | today |
2 | 32 | kavin | 2 | dev | sunday |
3 | 22 | tony | NULL | NULL | NULL |
注意:左连接中,左表的一条记录如果在右表中有 n 条匹配,就会显示 n 条记录。如果匹配不到,则都显示为null。