多表联合查询:连接查询,包括 内连接、外连接、交叉连接。
内连接
关键字 Inner join
等值链接 / 相等链接
表中存在至少一个匹配时,INNER JOIN 关键字返回行
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
外连接
左外连接(左连接)
关键字 left join
left join 关键字会从左表(table_name1)那里返回所有的行,即使在右表(table_name2)中没有 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中,left join 称为left outer join
右外连接(右连接)
关键字 right join
right join 关键字会从左表(table_name2)那里返回所有的行,即使在右表(table_name1)中没有
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中,right join 称为 right outer join
全连接
关键字 full join
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, full join 称为 full outer join
交叉连接
关键字 cross join
两个表做笛卡尔积,得到的结果集的行数是两个表的行数的乘积
--笛卡尔积 (cross join后加条件只能用where,不能用on) --45条数据(9*5)
SELECT * FROM PM_ACT_JOB_RLS CROSS JOIN PM_ACT_RLS
总结
链接查询是关系型数据库中的一个中重要标志。