Mysql join(连接查询) 与 union(联合查询) 的区别
join(连接查询):是将两个查询(或表)的每一行,以“两两横同对接”的方式,所得到的所有行的结果,即一个表中的某行,跟另一个表中的某行。进行“横向对接”,得到一个新行。union (联合查询):指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。测试数据mysql> select * from test;+----+--------+------+------+| i
·
-
join(连接查询):是将两个查询(或表)的每一行,以“两两横同对接”的方式,
所得到的所有行的结果,即一个表中的某行,跟另一个表中的某行。
进行“横向对接”,得到一个新行。 -
union (联合查询):指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。 -
测试数据
mysql> select * from test;
+----+--------+------+------+
| id | name | sex | age |
+----+--------+------+------+
| 1 | name1 | 女 | 15 |
| 2 | name1 | 女 | 15 |
| 4 | name2 | 男 | 30 |
| 5 | name50 | 男 | 12 |
+----+--------+------+------+
mysql> select * from user;
+----+-------+------+
| id | name | age |
+----+-------+------+
| 1 | name1 | 18 |
| 2 | name2 | 15 |
| 3 | name3 | 20 |
| 4 | name4 | 30 |
+----+-------+------+
-
查询数据的结果区别:
join(连接查询):横向拼接查询结果的数据。mysql> select * from test left join user on test.name=user.name; +----+--------+------+------+------+-------+------+ | id | name | sex | age | id | name | age | +----+--------+------+------+------+-------+------+ | 1 | name1 | 女 | 15 | 1 | name1 | 18 | | 2 | name1 | 女 | 15 | 1 | name1 | 18 | | 4 | name2 | 男 | 30 | 2 | name2 | 15 | | 5 | name50 | 男 | 12 | NULL | NULL | NULL | +----+--------+------+------+------+-------+------+union (联合查询):纵向拼接查询结果的数据。mysql> select id, name, age from test union select id, name, age from user; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | name1 | 15 | | 2 | name1 | 15 | | 4 | name2 | 30 | | 5 | name50 | 12 | | 1 | name1 | 18 | | 2 | name2 | 15 | | 3 | name3 | 20 | | 4 | name4 | 30 | +----+--------+------+
更多推荐
所有评论(0)