MySQL中UNION 和 JOIN 多表联合查询方式 |
|||||||||||||||
前言在 MySQL 中,UNION 和 JOIN 是多表查询的两种主要方式 。它们有不同的适用场景和语法 两者的差异如下:
具体的使用选择:
当需要将两表数据按照某种逻辑相关联时,选择 JOIN
当需要合并多表中具有相同结构但无直接关系的数据时,选择 UNION 1. JOINJOIN 用于在多个表之间按一定条件关联数据 JOIN 查询通过指定的条件(如外键关系)将表横向组合 SELECT column_names FROM table1 [INNER|LEFT|RIGHT] JOIN table2 ON table1.column_name = table2.column_name WHERE conditions; 基本的类型有如下: JOIN 类型
只返回两个表中满足 ON 条件的记录
返回左表中的所有记录,以及右表中与左表记录匹配的记录
返回右表中的所有记录,以及左表中与右表记录匹配的记录
返回两个表中所有记录,不论是否有匹配项 SELECT ... FROM table1 LEFT JOIN table2 ON condition UNION SELECT ... FROM table1 RIGHT JOIN table2 ON condition; 2. UNIONUNION 用于将两个或多个查询结果纵向组合为一个结果集 。它对查询的列数和数据类型有要求 基本的语法如下: SELECT column_names FROM table1 WHERE conditions UNION [ALL] SELECT column_names FROM table2 WHERE conditions; 注意事项有如下:
UNION 会去掉结果集中重复的记录
所有参与查询的 SELECT 语句必须有相同的列数
可以通过在 UNION 之后的结果集中加 ORDER BY 对整体结果排序 到此这篇关于MySQL中UNION 和 JOIN 多表联合查询方式的文章就介绍到这了,更多相关mysql union和join内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |