模板:SQL多表查询
多表查询,一般通过JOIN关键字将表建立连接,再查询。
基本语法:
SELECT 显示的列
FROM 表1 表1别名 -- 设置表别名,方便引用
JOIN 表2 表2别名 ON 连接条件
... --其他可选SELECT子句
分类 | 命令 | 描述 |
---|---|---|
内连接 | SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 条件; |
按条件取两表交集,INNER可以省略。 |
隐式内链接 | SELECT 字段名 FROM 左表, 右表 WHERE 连接条件; |
结果与内连接查询一样。 |
左外连接 | SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件; |
以左表为基准,左边所有数据,以及右表与左表有交集部分。对于左表有而右表没有的数据,右边显示NULL。OUTER可省略。 |
右外连接 | SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 条件 |
以右表为基准,右边所有数据,以及左表与右表有交集部分。对于右表有而左表没有的数据,左边显示NULL。OUTER可省略。与左外连接相似,一般使用左外连接即可。 |
交叉连接查询 | SELECT 字段名 FROM 表1, 表2; |
交叉连接(Cross Join),左边全部行与右边的全部行组合,返回大量行,两表行数的乘积(笛卡尔积)。注意:使用这种一定要添加限制条件。 |