sql 的并集UNION和内联结INNER JOIN 有什么区别?感觉结果是一样的。

我好像理解了内联结,但是并集UNLON有把我绕晕了。所以想知道他们有什么区别?(内联结、左右外联结、全联结,刚刚好像理解了) 但是突然又跑出个 (并集,交集,差集,不知道他们有什么区别?)就想感觉内联结和并集的结果是一样的。 求高手随便指点指点,我很快就会明白的。QQQ

union与inner join不存在区别的,主要体现如下:
1)union:是无条件合并两个结果集的,前提是列的数据类型相兼容,体现在行数增加了;
2)inner join:是需要给出关联字段条件且相等才连接两个结果集,体现在列数增加了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-24
join是针对列,union是针对行。

还有的区别就是inner join需要关联条件,也就是表和表之间需要有联系
union则不需要,可以之间把两个表select 的结果进行连接
第2个回答  推荐于2018-03-23
SQL的并集UNION只能查询两表字段类型(同为int 或者 字符串)相同时才能使用
如 Select id,name,age from tableA
Select id,name,age from tableB 可以并集得到两表查询的结果集
INNER JOIN 是内连接,需要两表存在关联关系,并且查询出来的结果是两表所有字段的结果集,UNION不需要关联关系 只要查询的字段对应类型一致即可本回答被网友采纳
第3个回答  2016-08-19
当然不一样了 其中主要区别在于
UNION 多条查询结果合并一起 而且查询的结果字段还必须相同 尤其是一个查询语句无法满足查询结果的情况
INNER JOIN 是联合多表 可同时查询多个表字段 和多个表条件
简单举个例子
假如表 TABLE 有字段 ID NAME
UNION 可以的查询
SELECT * FROM TABLE WHERE ID = 2
UNION
SELECT * FROM TABLE WHERE ID <>2 AND NAME = 'A'
合并这样的查询
第4个回答  2016-06-07
区别大了,join是列的联接,union是行的联接。追问

如果他们联结的对象是主键和外键
JOIN是列的联结。大概的意思是将外键按照主键相加,会把子表里面的其他字段也给带过去。结果会包含除了主键和外键以外的其他的所有字段。
UNION是行的联结,结果是不包含其他的字段。只有该字段的记录。是把两个字段的记录相加成一个字段。
是不是大概这个意思啊。。。

追答

join基本正确。union你理解错了吧,举个例子,where age = 20结果有2条,where age = 30有3条,那么union起来共5条。union通常针对同样表(很多时候就只有一个表)结构的多次select,如果字段不一样就没法union了。

本回答被提问者采纳
相似回答