MySQL查询语句整理
查询操作
笛卡尔积
假设我们有两张表分别是部门表department
和员工表employee
,数据如下:
通过以下语句,可对两张表做一个交叉链接查询
,
SELECT * FROM department CROSS JOIN employee;
结果如下:
可以看到交叉查询的返回结果一共有 15 行数据,在 employee
表中有 5 行数据,在 department
表中有3 行数据,两个表做乘积(即,笛卡尔乘积),就会得到 15 行数据。
内连接
**内连接查询(INNER JOIN
)**是根据一些过滤条件来匹配表之间的数据。在逻辑查询的前三个阶段处理中,INNER JOIN 应有前两个阶段,即首先产生笛卡尔积的虚拟表,再按照过滤条件来进行数据匹配操作。内连接分为两种查询方式:
- 显式内连接,在查询语句中,用
ON
连接条件。 - 隐式内连接,在查询语句中,用
WHERE
连接条件。
# 显式内连接
SELECT * FROM <左表> INNER JOIN <右表> ON <条件>;
# 隐式内连接
SELECT * FROM <左表>,<右表> WHERE <条件>;
# 显式内连接
SELECT * FROM department d INNER JOIN employ