语法:
SELECT * FROM <表1> <表2>
这种多表查询,又称笛卡尔查询,结果集是目标表的行数乘积,效率最低.
连接查询是 另一种类型的多表查询,分为 内连接,左外连接 和右外连接.
使用区别:
内连接 是返回两个表同时存在的行,不包含 null 的数据.
外连接 :
INNER JOIN只返回同时存在于两张表的行数据
RIGHT OUTER JOIN返回右表都存在的行。如果某一行仅在右表存在,那么结果集就会以NULL填充剩下的字段。
LEFT OUTER JOIN则返回左表都存在的行。
使用 连接查询,可以提高查询的效率,语法为
SELECT ... FROM <表1> INNER JOIN <表2> ON <条件...>
后面还可以接 where
条件 和 order by
排序
使用参考用例为牛客SQL实战第3题, 用 on 做条件连接,然后就可以用 where 做条件查询,很方便.
查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no
总结:
- join 连接查询使用率最高
- 内连接 inner 可以省, 外连接 out 可以省,不影响使用结果
- 左外连接和右外连接 选择使用一个使用即可
网友评论