CROSS JOIN 是一种 SQL
连接操作,它会将左边表格(也可以理解为子查询或主查询)中的每一行与右边表格中的每一行进行组合,生成一个新的虚拟表。这种连接方式不依赖于任何连接条件,因此它会返回左表和右表的所有可能组合。
CROSS JOIN 基本语法
SELECT *
FROM table1
CROSS JOIN table2;
它将返回 table1 和 table2 中所有行的组合。
用途和特点:
- 组合所有行:不像其他连接(如 INNER JOIN),CROSS JOIN
不需要任何匹配条件或关联键,它会简单地将左右两边的所有行组合起来。
适用情况:通常在需要生成笛卡尔积(Cartesian
Product)的场景下使用,比如在计算所有可能组合的情况下,或者用于某些计算需要使用所有行的情况。
例如:
假设我们有两个表格,分别是 employees 和departments,它们没有直接的关联键。如果我们需要生成所有员工和部门的组合,可以使用 CROSS JOIN:
SELECT employees.name, departments.department_name
FROM employees
CROSS JOIN departments;
他将返回所有员工与所有部门的组合。