📅  最后修改于: 2023-12-03 15:35:07.957000             🧑  作者: Mango
在SQL中,有几个常用的“VS之间”的组合,下面来介绍一下它们之间的不同。
JOIN和INNER JOIN本质上是相同的语句,它们都是用来连接两个数据表中的数据,但是JOIN不仅可以连接两个表,还可以连接多个表,而INNER JOIN只能连接两个表。
JOIN的语法如下:
SELECT * FROM table1
JOIN table2
ON table1.column = table2.column;
INNER JOIN的语法如下:
SELECT * FROM table1
INNER JOIN table2
ON table1.column = table2.column;
LEFT JOIN和RIGHT JOIN也是用来连接两个数据表中的数据,不同之处在于左连接和右连接的结果不同。
LEFT JOIN会返回左表中所有的记录以及匹配右表的记录,如果右表中没有匹配的记录,那么就返回NULL。
RIGHT JOIN会返回右表中所有的记录以及匹配左表的记录,如果左表中没有匹配的记录,那么就返回NULL。
LEFT JOIN的语法如下:
SELECT * FROM table1
LEFT JOIN table2
ON table1.column = table2.column;
RIGHT JOIN的语法如下:
SELECT * FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
OUTER JOIN和FULL OUTER JOIN也是用来连接两个数据表中的数据,不同之处在于它们的结果不同。
OUTER JOIN会返回两张表中所有的记录,如果没有匹配的记录就返回NULL。
FULL OUTER JOIN会返回两张表中所有的记录,无论是否匹配。
OUTER JOIN的语法如下:
SELECT * FROM table1
LEFT OUTER JOIN table2
ON table1.column = table2.column;
FULL OUTER JOIN的语法如下:
SELECT * FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;
总结:
JOIN和INNER JOIN用来连接两个数据表中的数据,但JOIN可以连接多个表,INNER JOIN只能连接两个表。
LEFT JOIN会返回左表中所有的记录以及匹配右表的记录,如果右表中没有匹配的记录,那么就返回NULL。RIGHT JOIN会返回右表中所有的记录以及匹配左表的记录,如果左表中没有匹配的记录,那么就返回NULL。
OUTER JOIN会返回两张表中所有的记录,如果没有匹配的记录就返回NULL。FULL OUTER JOIN会返回两张表中所有的记录,无论是否匹配。