SQL Join 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
语法
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
或者:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
INNER JOIN 与 JOIN 是相同的。
参考图如下:

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
语法
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
或:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
语法
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
或:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.
FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
语法
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
FULL OUTER JOIN 关键字返回左表和右表中所有的行。如果table1 表中的行在 table2中没有匹配或者 table2表中的行在 table1表中也没有匹配,也会列出这些行。

SQL JOIN用于整合多个表的数据,根据共同字段进行匹配。INNER JOIN返回两表中匹配的行,LEFT JOIN即使右表无匹配也保留左表所有行并用NULL填充,RIGHT JOIN反之。FULL OUTER JOIN则在任何一方有匹配时返回行,两边都无匹配则显示NULL。JOIN和INNER JOIN在用法上等价。LEFT JOIN和RIGHT JOIN有时也称为LEFT OUTER JOIN和RIGHT OUTER JOIN。

1461

被折叠的 条评论
为什么被折叠?



