数据库中的LEFT JOIN 个人理解

Posted 宇宙由我代码生成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的LEFT JOIN 个人理解相关的知识,希望对你有一定的参考价值。

首先要明白LEFT JOIN 的作用

TABLE A LEFT JOIN TABLE B 的意思指,将表A和表B拼接起来,就是按照一定的规则(自己制定)把A和B的行组合起来。

 

 比如有以上两个表,现在有一个语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName;

这句话的主要用意就是把Persons中的LastName、FirstName两列和Orders中的OrderNo拼起来,组合成一个新的表:| LastName | FirstName | OrderNo |

但是这句话有点不好理解,我觉得主要是断句不好,官方的断句以及W3school上的断句就像上面展示的一样。我个人的断句如下:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM      #第一行表明要查的结果

Persons                                                              #紧接着的三行表明查询的目标
LEFT JOIN                                                            #即从哪里查出来第一句想要的结果
Orders
ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

以上的断句的意思是:

第一行:SELECT 后面是要查的列名,包括两个表中的列

第二行:指明 LEFT JOIN 操作中的左表,即上面示意中的A表

第三行:LEFT JOIN 关键字

第四行:指明 LEFT JOIN 操作中的右表,即上面示意中的B表

第五行:  指明拼接的规则 

二、三、四行的结果集正是第一行查询的对象,从FROM可以看出

最后一行是用来将最终的结果拍序的。

本来想用图表示一下过程的,奈何图太大...,就这样吧.

 

以上是关于数据库中的LEFT JOIN 个人理解的主要内容,如果未能解决你的问题,请参考以下文章

有人可以用 JOIN 和 LEFT JOIN 帮助我理解以下 SQL 代码吗? (对 SQL 来说真的很新)

sql语句中left join和inner join中的on与where的区别分析

ql语句中left join和inner join中的on与where的区别分析

关于VF中select left(right) join的准确用法

关于SqlServer的内连接,外链接以及left join,right join之间的一些问题与区别。

Oracle left outer join with is null in JOIN vs WHERE 条件(示例)