File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,37 @@ SELECT select_sxpressions FROM TABLE A RIGHT JOIN TABLE B ON A.key=B.key WHERE
40
40
SELECT select_sxpressions FROM TABLE A RIGHT JOIN TABLE B ON A.key=B.key WHERE A.key IS NOT NULL;
41
41
表A与表B的交集,相当于INNER JOIN。
42
42
43
+ ********************************************************************************
44
+ 全连接
45
+
46
+ FULL JOIN:是LEFT OUTER JOIN和RIGHT OUTER JOIN的合集。显示出两张表中的所有数据,
47
+ 当一张表的连接谓词无法满足时,则另一张表的字段在该表中为NULL。
48
+
49
+ MySQL不支持FULL JOIN
50
+ 解决方法:
51
+ 通过UNION将左连接和右连接的结果合并
52
+ SELECT select_expressions
53
+ FROM TABLE A LEFT JOIN TABLE B ON A.key=B.key
54
+ UNION ALL
55
+ SELECT select_expressions
56
+ FROM TABLE A RIGHT JOIN TABLE B ON A.key=B.key;
57
+
58
+ UNION会自动删除重复项,刷选出部分字段的时候要注意了,如果刷选出来的两个字段的值完全相同就会剩下一个。
59
+ UNION ALL 和 UNION 不同之处在于 UNION ALL 会将左右两个查询的结果的所有的资料都列出来,无论资料值有无重复。
60
+
61
+ ********************************************************************************
62
+
63
+ CROSS JOIN:笛卡尔连接,如果A和B是两个集合,它们的交叉连接就记为A X B。
64
+ 一个表的每个记录与另一个表的所有记录进行连接,形成A.length*B.length个数据项的表。(无需提供ON)
65
+
66
+ SELECT select_expressions FROM TABLE A CROSS JOIN TABLE B;
67
+
68
+
69
+
70
+
71
+
72
+
73
+
43
74
44
75
45
76
You can’t perform that action at this time.
0 commit comments