mysql中left join和union有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中left join和union有啥区别?相关的知识,希望对你有一定的参考价值。

说实话,没感觉有太大的相同,,,,

left join 表示至少2表要有1个匹配字段才能返回数据

union则不需要有关联字段就可以返回数据;而且union要求多次查询的结果列数必须一样;例如

select a,b
from t1
union 
select a,b
from t2

必须要求,t1,t2都是显示两个字段

追问

一般什么情况下用left join ,什么情况下用union呢

追答

2个表有关联字段的用left join,2个表没有任何关联用union

参考技术A http://www.2cto.com/database/201212/172617.html
希望这个对你有用。

SQL中的Join和UNION有啥区别

【中文标题】SQL中的Join和UNION有啥区别【英文标题】:What's the difference between Join and UNION in SQLSQL中的Join和UNION有什么区别 【发布时间】:2016-04-10 05:34:37 【问题描述】:

我只是想知道SQL和Join中的Join和Union有什么区别,Join和Cross Join有什么区别?谢谢!

【问题讨论】:

essentialsql.com/… What is the difference between Join and Union?的可能重复 【参考方案1】:

Join:根据特定条件加入表。假设表 A 有 2 行 rowA1 和 rowA2。并且您将其与具有 3 行 rowB1 rowB2 rowB3 的表 B 连接。所以结果将是:

rowA1.data RowB1.data
rowA1.data RowB2.data
rowA1.data RowB3.data
rowA2.data RowB1.data
rowA2.data RowB2.data
rowA2.data RowB3.data

但在联合中,结果将是:

rowA1.data
rowA2.data
rowB1.data
rowB2.data
rowB3.data

Union 还会检查重复项。数据类型应该一致。返回的列的数据类型应与数据类型和编号的顺序和编号相同。第二个表返回的列数。

加入是一个概念。它可以是各种类型,例如Inner Join,Outer Join,Cross Join。交叉连接意味着,缺少一个可以唯一连接表数据的条件。

【讨论】:

以上是关于mysql中left join和union有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

JOIN 和 UNION 有啥区别?

JOIN 和 UNION 有啥区别?

JOIN 和 UNION 有啥区别?

JOIN 和 UNION 有啥区别?

SQL中的Join和UNION有啥区别

JOIN 和 UNION 有啥区别?