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之间的区别。