多表查询

语法:
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

总结:

  1. join 连接查询使用率最高
  2. 内连接 inner 可以省, 外连接 out 可以省,不影响使用结果
  3. 左外连接和右外连接 选择使用一个使用即可

你可能感兴趣的:(多表查询)