多表连接查询
当查询的字段来自多个表
分类:内连接:等值连接、非等值连接、自连接
外连接:左外连接、右外连接、全外连接
交叉连接
不同的 SQL JOIN
在展示具体语句结构之前,我们先列出您可以使用的不同的 SQL JOIN 类型:
- INNER JOIN:如果表中有至少一个匹配,则返回行
- LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
SQL JOIN
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。
结构;
内连接
SELECT * FROM 主表 INNER JOIN 副表 ON 主表.主键=副表.主键
左外连接#查询非交集(内连接查询的即为交集)
SELECT 主表.*, 字段
FROM 主表
LEFT JOIN 副表
ON b.`主表.主键`=副表.主键
WHERE 字段 IS NULL;
右外连接
SELECT 字段,主表.* FROM 主表 RIGHT JOIN 副表 ON 主表.主键=副表.主键 WHERE 主表.主键 IS NULL
交叉连接(笛卡尔乘积)
SELECT 表.*,表.* FROM 表,表;