sql中联接与合并的区别、用法及实例

1.join和工会之间的差异

连接是在两个表连接之后生成表的同一部分的记录集。
联合是两组记录(字段是相同的),并一起成为一组新记录。

连接用于根据条件连接两个表,有四种主要类型:
内部联接:内部连接两个表中的记录,只有当属于两个表的至少一个行符合连接条件时,内联才返回到行。
左连接/左外连接:外部加入记录在两表包含在左表中的所有记录。如果一个左表记录没有在右表中匹配的记录,所有选定的名单列在右表相关的结果集是空值。据了解,在左表中的记录都显示即使不符合条件,结果集中的记录正确的类表字段为空值。
右连接/右外部连接:外部连接两个表中的记录,并包含右表中的所有记录。
完全联接/完全外部联接:完整的外部连接返回左表和右表中的所有行。它是左连接和右连接合并,所有左右两个表的数据都显示出来。

连接的基本语法:
选择表。从表1和表在表1. id = table2.id

SQL语句编写

内部连接内部连接:
复制代码代码如下所示:
选择msp.name,party.name
从MSP加入党在党=代码


复制代码代码如下所示:
选择msp.name,party.name
从MSP内部加入方


左连接左连接:
复制代码代码如下所示:
选择msp.name,party.name
来自MSP的左入党

右连接到右连接:
复制代码代码如下所示:
选择msp.name,party.name
从MSP对加入党党= party.code MSP。

完全连接(完全连接):
复制代码代码如下所示:
选择msp.name,party.name
从MSP全MSP加入党。党= party.code


UNION运算符

两个或多个查询的结果集合并为一个结果集,其中包含联合查询中所有查询的所有行。并集的结果集名称与联合运算符中第一个SELECT语句的结果集的列名相同,结果集的另一个SELECT语句将被忽略。
这些不同的用法中有两种是联合和联合所有,不同的是联盟从结果集中删除重复的行。如果使用联邦全部,则将包含所有行,重复行将不会被删除。

工会与工会的区别:

联合检查重复
联合所有不检查
例如,select'a'union select'a输出一行一个
例如,select'a'union所有select'a输出是两线

2。通过下面的例子,我们可以清楚地看到和理解2者之间的区别。
1个连接演示的两个典型例子

假设有两个表表和表,其中包含列和数据,分别如表1.1和表1.2。

表1.1表的数据库表








columnb

columnc



X1


Y1


Z1



X2


Y2


Z2



X3


Y3


Z3



表1.2表的数据库表








columnd





X1


D1


E1



X2


D2


E2



X3


D3


E3



表1和表表共享柱。如果柱柱的价值是连接两个表的表和表,即连接状态表1.柱= table2.columna。此时获得的连接结果如表1.3所示。

表1.3和表表的连接表







columnb

columnc

columnd




X1


Y1


Z1


D1


E1



X2


Y2


Z2


D2


E2



X3


Y3


Z3


D3


E3

上述连接过程的实现代码可以表示如下:SELECT * FROM表加入表在表1.柱= table2.columna

典型表面记录合并操作2例

假设有两个表表和表,其中包含列和数据,分别如表2.1和表2.2。

表2.1表3数据库表








columnb

columnc



X1


Y1


Z1



X2


Y2


Z2



X3


Y3


Z3



表2.2表的数据库表,








columnd





X4


Y4


Z4



X5


Y5


Z5



X6


Y6


Z6



在表3表和表表有相同的柱结构和相同的列数。列名可能不同。第一个表的列名是新表的列名。因此,可以使用联合操作符来连接两个表的记录集。连接结果如表2.3所示。

表2.3采用接头连接的表表的记录和表表








columnb

columnc


X1

Y1

Z1


X2

Y2

Z2


X3

Y3

Z3


X4

Y4

Z4


X5

Y5

Z5


X6

Y6

Z6

上述连接过程的实现代码可以表示如下:SELECT * FROM表3联盟选择*从表4

不难发现两者和示例1和示例2之间的区别。