如题,这种问题实际在公司的笔试中是很经常碰到的题目,而实际上在项目的具体实施过程中,倒是很少用到,到目前为止我都没用过,当然也可能是我自己的问题啦,呵呵!简单讲讲这些的区别:
(1)left join/right join/inner join
select * from first_table left join/right join/inner join second_table on first_table.field = second_table.field
保留了first_table中所有的数据,而second_table保留与first_table匹配的数据,如无匹配,则为null
而right join则相反;
inner join保留两张表共同匹配的数据。
注:数据类型必须一样,否则异常
(2)union/union all
使用 UNION 组合查询的结果集有两个最基本的规则:
1,所有查询中的列数和列的顺序必须相同。
2,数据类型必须兼容
不同点:union all效率要比union来得高。
但是union返回的是不含重复数据的结果集,而union all返回全部数据的结果集