最新消息:

SQL基本连接语法总结

SQL 观测者 1853浏览

inner join(等值连接)
只返回两个表中联结字段相等的行。
备注:
1.join默认就是inner join。

left join(左联接)
返回包括左表中的所有记录和右表中联结字段相等的记录。
备注:
1.left join 是left outer join的简写,left join默认是outer属性的。(right join同理)
2.A left join B 的连接的记录数与A表的记录数同。

right join(右联接)
返回包括右表中的所有记录和左表中联结字段相等的记录。
备注:
1.A right join B的连接的记录数与B表的记录数同。
2.A left join B 等价于B right join A。

full outer join(全外部连接)
除了返回两个表的匹配行外,还包括了FROM子句中JOIN关键字左边表和右边表的不匹配行。

cross join(交叉连接)
没有WHERE子句的交叉连接将产生连接所涉及的表的笛卡尔积,笛卡尔积结果集的大小为第一个表的行数乘以第二个表的行数。
与前面介绍的连接方式不同,交叉连接没有ON子句指明连接条件,但可以使用WHERE子句定义连接条件。
实际上,下面两个表达式是完全等价的:
SELECT * FROM table1,table2
SELECT * FROM table1 CROSS JOIN table2

Inner Join:
Select * from t1,t2 where t1.id=t2.c1
Select * from t1 inner join t2 on t1.id=t2.c1
Select * from t1,t2 where t1.id between 1 and 4

Full Outer Join:
Select * from t1 full outer join t2 on t1.id = t2.c1

Left Outer Join:
Select * from t1 left outer join t2 on t1.id =t2.c1

Right Outer Join:
Select * from t1 right outer join t2 on t1.id =t2.c1

Cross Join:
Select * from t1 cross join t2

Natural Join(t1和t3表都有id列并且数据类型一样)
Select * from t1 natural join t3

Self Join:
Select * from t1 as t1_s, t1

附注:常用连接示意图

full outer join

inner join

left outer join

right outer join

转载请注明:观测者 » SQL基本连接语法总结