SQL 各种JOIN

来源:互联网 发布:视频格式转换器 mac 编辑:程序博客网 时间:2024/06/02 06:12

SQL join 用于根据两个或者多个表之间的联系,从这些表汇总查询数据

Join 和 Key
有时我们为得到完整的结果,我们需要从两个或者更多的表中获取结果,我们需要执行join,,
数据库中的表都是可以通过键将彼此联系起来,主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的,在表中,每个主键都是唯一的,这样做的目的是为了不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起,,

下面有czhenya001,czhenya002 两表
原表
查询语句:
通过引用两个表的方式,获取表中数据

SELECT * FROM czhenya001,czhenya002WHERE czhenya001.Id = czhenya002.id_ex

我们也可以使用 Join来从两个表中获取数据(结果是一样的)

SELECT * FROM czhenya001JOIN czhenya002WHERE czhenya001.Id = czhenya002.id_ex

结果
不同的 SQL JOIN

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行

    LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

    RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

    FULL JOIN: 只要其中一个表中存在匹配,就返回行

SQL INNER JOIN
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
INNER JOIN 语法(INNER JOIN 与 JOIN 是相同的

SELECT *(列名)FROM 表名1INNER JOIN 表名2 ON 表名1.列名1=表名2.列名2

SQL LEFT JOIN
表1 那里返回所有的行,即使在右表2中没有匹配的行。
LEFT JOIN 语法

SELECT 列名FROM1LEFT JOIN2ON 表名1.列名1=表名2.列名2

注:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

SQL FULL JOIN
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
FULL JOIN 语法

SELECT 列名FROM1FULL JOIN2ON 表名1.列名1=表名2.列名2

我们还可以就对查询出来的记录进行排序,,只要在每句查询语句的后面加上

ORDER BY 列名 //正序ORDER BY 列名 DESC //逆序

这里的列名需要是上面要显示列名中的一个

原创粉丝点击