标签:JOIN 结果 union 表中 UNION inner sql join SELECT
JOIN 和 INNER JOIN:
JOIN
是 SQL 中用于将两个或多个表中的数据根据指定的关联条件组合在一起的操作。INNER JOIN
是 JOIN
的一种,它返回两个表中满足关联条件的行。
- 语法:
收起
sql
SELECT columns
FROM table1
JOIN table2 ON table1.column = table2.column;
或
收起
sql
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
收起
sql
SELECT *
FROM employees
JOIN departments ON employees.department_id = departments.department_id;
- 解释:
JOIN
和 INNER JOIN
的结果集仅包含那些在两个表中都有匹配行的记录。例如,如果 employees
表中的 department_id
能在 departments
表中找到对应的 department_id
,那么这些行将被包含在结果中。如果在 employees
表中的 department_id
在 departments
表中没有匹配项,那么该行将被排除。
ON
子句指定了关联条件,它定义了如何将两个表中的行进行匹配。
- 当使用
JOIN
时,如果没有指定连接类型(如 LEFT JOIN
、RIGHT JOIN
、FULL OUTER JOIN
),默认情况下就是 INNER JOIN
。
UNION ALL:
UNION ALL
用于将两个或多个 SELECT
语句的结果集组合在一起,并且不会去重。它要求每个 SELECT
语句具有相同数量的列,并且相应列的数据类型必须兼容。
- 语法:
收起
sql
SELECT columns FROM table1
UNION ALL
SELECT columns FROM table2;
收起
sql
SELECT first_name FROM employees
UNION ALL
SELECT first_name FROM customers;
- 解释:
UNION ALL
简单地将两个查询结果集拼接在一起,不执行任何去重操作。如果第一个查询结果集包含 'John'
三次,第二个查询结果集包含 'John'
两次,那么最终结果集将包含 'John'
五次。
- 性能方面,由于
UNION ALL
不需要去重,所以通常比 UNION
更快。
UNION:
UNION
也用于将两个或多个 SELECT
语句的结果集组合在一起,但会自动去除重复行。同样,它要求每个 SELECT
语句具有相同数量的列,并且相应列的数据类型必须兼容。
- 语法:
收起
sql
SELECT columns FROM table1
UNION
SELECT columns FROM table2;
收起
sql
SELECT first_name FROM employees
UNION
SELECT first_name FROM customers;
- 解释:
UNION
会将两个查询结果集拼接在一起,然后消除重复行。如果第一个查询结果集包含 'John'
三次,第二个查询结果集包含 'John'
两次,最终结果集将只包含 'John'
一次。
- 性能方面,由于
UNION
需要进行去重操作,可能会比 UNION ALL
慢,尤其是在结果集较大时,因为它需要比较和消除重复项。
总结区别:
JOIN
和 INNER JOIN
是将多个表的数据根据关联条件组合在一起,关注的是不同表之间的数据关联。
UNION ALL
是将多个 SELECT
语句的结果集进行简单拼接,不考虑去重,注重结果集的合并。
UNION
也是将多个 SELECT
语句的结果集进行拼接,但会对结果进行去重,适用于不希望结果集中有重复数据的情况。
在实际使用中,根据具体的需求选择合适的操作:
- 如果你需要将多个表的数据根据某种关系组合,使用
JOIN
或 INNER JOIN
。
- 如果你需要将多个
SELECT
语句的结果集拼接在一起,且不关心重复数据,使用 UNION ALL
。
- 如果你需要将多个
SELECT
语句的结果集拼接在一起,但不希望有重复数据,使用 UNION
。
需要注意的是,无论使用哪种操作,都要确保查询的列在数量和数据类型上兼容,以避免出现错误。同时,考虑性能因素,在不需要去重时,尽量使用
UNION ALL
而不是
UNION
。
标签:JOIN,
结果,
union,
表中,
UNION,
inner,
sql,
join,
SELECT
From: https://www.cnblogs.com/wangbiaohistory/p/18672654