left outer join 查询疑问

我有两张表,表名分别是T_SINGLE_PERSON_INFO 和 T_RENTAL_PERSON_INFO

这两张表的自段完全一样,都含有 ID, NAME,CERTIFICATE_NO,PHONE字段

T_SINGLE_PERSON_INFO 中有一条数据
ID, NAME, CERTIFICATE_NO, PHONE
1 张三 530127195309165930 82345689

T_RENTAL_PERSON_INFO 中有一条数据
ID, NAME, CERTIFICATE_NO, PHONE
1 李四 511525198911227313 85319625

现在我用left outer Join 对这两张表进行关联查询

sql 语句如下

select a.NAME,a.PHONE,b.NAME,b.PHONE
from T_SINGLE_PERSON_INFO as a
left outer join T_RENTAL_PERSON_INFO as b on a.ID = b.ID

查询出的结果是:
a.NAME, a.PHONE, b.NAME, b.PHONE
张三 82345689 张三 82345689

不知道是为什么?请指点!

1个回答

左外连接,left outer join ... on

语句格式:

  FROM [表名1] LEFT JOIN [表名2]

  ON [表名1.字段A] 〈关系运算符〉[表名2.字段B]

其实LEFT JOIN 的功能就是将LEFT左边的表名1中的所有记录全部保留,而将右边的表名2中的字段B与表名1.字段A相对应的记录显示出来(当使用SELECT * 时)。而RIGHT JOIN 和LEFT JOIN 相反。

 外连接的功能是,把LEFT左边的表中的所有记录保留,而右边表只保留相关联的记录,也就是先执行一次INNER JOIN,然后把LEFT左边的表中的与右边表没有任何关联的记录也保留,而右边表的字段为null.
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!