左连接,右连接,内连接,Union
数据库的三种常用连接解析:
官方解释:
1、left [outer] join(左外联接) 返回 包括左表中的所有记录和右表中联结字段相等的记录
2、right [outer] join(右外联接) 返回 包括右表中的所有记录和左表中联结字段相等的记录
3、inner [outer] join(等值连接 又名内连接) 只返回 两个表中联结字段相等的行
PS:无论左,右连接得到的结果集的记录数肯定是大于等于主表的记录数的,而内连接的结果集可以是小于,等于连接的表的记录数的。
左,右还是内连接表的一个重要的用处:可以横行的扩展一个表,可以得到一个有更多属性的新的表
Union
UNION 指令的目的是将两个 SQL 语句的结果合并起来,PS:UNION 内部的 SELECT 语句必须拥有相同数量的列(包括列的名称,顺序,数据类型),列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
UNION 可以纵向的增加一个表的记录行数
PS:默认地,UNION 操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用 UNION ALL,另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
右连接 实例代码:
1 SELECT 2 files.id,files.filepath,files.filename 3 FROM 4 files 5 RIGHT JOIN pfiles ON files.id = pfiles.id
左连接 实例代码:
1 SELECT 2 files.id,files.filepath,files.filename 3 FROM 4 files 5 LEFT JOIN pfiles ON files.id = pfiles.id
内连接 实例代码:
1 SELECT 2 files.id,files.filepath,files.filename 3 FROM 4 files 5 INNER JOIN pfiles ON files.id = pfiles.id
Union:
1 SELECT 2 files.id 3 FROM 4 files 5 UNION 6 SELECT 7 pfiles.id 8 FROM 9 pfiles