sql语句之union与join的区别
union查询:
使用 union 可以将多个select语句的查询结果组合起来。
语法:
select 字段1,字段2 from table1 union select 字段1,字段2 from table2;
例:
注意:
1、union 关键字两边的select语句的字段数量是需要一致的,并不要求字段名称一致。
例:error 1222 字段不一致
2、查询的最终结果集的字段是以第一个select语句的字段来命名。
例:
3、union自动屏蔽重复的数据
例:
但是可以添加 all 来取消屏蔽
例:
Join查询:
使用 join 可以将多张表连接起来查询。
语法:
table1 join table2 on table1.字段名 = table2.字段名;
注意:join查询相当于将table1与table2两张表组合起来,形成一张新表,但是组合的前提是 table1.字段名=table2.字段名。
join查询不会产生临时表,所以这张所谓的新表是不存在的,节省性能。
例:
注意:在处理字段时,如果出现字段不唯一,可以table.字段名来明确字段属于哪个表的。
例:
因此在设计表的时候可以给字段添加前缀,如goods_name,从而避免冲突。
join的分类
| 内连接 inner join
在连接条件满足时,只有左表和右表同时存在数据,才会在最终结果中显示。
默认是内连接。
例:
| 左外连接 left join
只要左表存在数据,就会在最终结果中显示。
例:
| 右外连接 right join
只要右表存在数据,就会在最终结果中显示。
例:
join与union的区别:
union只是将两条select语句的查询结果组合在一起,而join是将两个表建立起关联后再查询。