mysql中union与join_sql语句之union与join的区别

union查询:

使用 union 可以将多个select语句的查询结果组合起来。

语法:

select 字段1,字段2 from table1 union select 字段1,字段2 from table2;

例:

81c6883909644a74eb4c846695e05dd3.png

注意:

1、union 关键字两边的select语句的字段数量是需要一致的,并不要求字段名称一致。

例:error 1222 字段不一致

775c83a3458ce9fd64049c491d49462d.png

2、查询的最终结果集的字段是以第一个select语句的字段来命名。

例:

mysql中union与join_sql语句之union与join的区别_第1张图片

3、union自动屏蔽重复的数据

例:

mysql中union与join_sql语句之union与join的区别_第2张图片

但是可以添加 all 来取消屏蔽

例:

mysql中union与join_sql语句之union与join的区别_第3张图片

Join查询:

使用 join 可以将多张表连接起来查询。

语法:

table1 join table2 on table1.字段名 = table2.字段名;

注意:join查询相当于将table1与table2两张表组合起来,形成一张新表,但是组合的前提是 table1.字段名=table2.字段名。

join查询不会产生临时表,所以这张所谓的新表是不存在的,节省性能。

例:

mysql中union与join_sql语句之union与join的区别_第4张图片

注意:在处理字段时,如果出现字段不唯一,可以table.字段名来明确字段属于哪个表的。

例:

mysql中union与join_sql语句之union与join的区别_第5张图片

因此在设计表的时候可以给字段添加前缀,如goods_name,从而避免冲突。

join的分类

| 内连接 inner join

在连接条件满足时,只有左表和右表同时存在数据,才会在最终结果中显示。

默认是内连接。

例:

mysql中union与join_sql语句之union与join的区别_第6张图片

| 左外连接 left join

只要左表存在数据,就会在最终结果中显示。

例:

mysql中union与join_sql语句之union与join的区别_第7张图片

| 右外连接 right join

只要右表存在数据,就会在最终结果中显示。

例:

mysql中union与join_sql语句之union与join的区别_第8张图片

join与union的区别:

union只是将两条select语句的查询结果组合在一起,而join是将两个表建立起关联后再查询。

你可能感兴趣的:(mysql中union与join_sql语句之union与join的区别)