您的位置:

SQL中FROM多个表概念详解

一、基本概念

在SQL语句中,FROM是一个非常重要的关键词,用于指定查询的表和关联方式。在多个表的情况下,可以使用JOIN子句来进行表的关联。JOIN子句指定了如何将多个表连接起来,并且可以指定连接的条件。通常,只有指定了FROM子句中的表才能够使用SELECT语句查询,同时也可以进行其他的操作。

二、内连接的使用

内连接是指只返回两个表中满足条件的数据。内连接可以使用JOIN关键字,具体如下:

SELECT *
FROM table1
JOIN table2
ON table1.column = table2.column

上述语句可以从table1和table2两个表连接,并且指定了连接条件。该查询将返回仅满足条件的行。

内连接可以有多个,并且可以使用不同的JOIN关键字来指定:

SELECT *
FROM table1
INNER JOIN table2
ON table1.column = table2.column
INNER JOIN table3
ON table2.column = table3.column

上述查询中,使用了两个INNER JOIN,指定了三个表之间的连接条件。

三、左连接的使用

左连接是指返回左边表中所有的数据,以及右边表中满足条件的数据。左连接使用LEFT JOIN关键字:

SELECT *
FROM table1
LEFT JOIN table2
ON table1.column = table2.column

上述查询中,将返回table1中所有的行,同时返回满足条件的table2的行,没有匹配的行将返回NULL。

左连接同样可以添加多个,例如:

SELECT *
FROM table1
LEFT JOIN table2
ON table1.column = table2.column
LEFT JOIN table3
ON table2.column = table3.column

上述查询中,将返回table1中所有的行,同时返回满足条件的table2和table3的行,没有匹配的行将返回NULL。

四、右连接的使用

右连接是指返回右边表中所有的数据,以及左边表中满足条件的数据。右连接使用RIGHT JOIN关键字:

SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column

上述查询中,将返回table2中所有的行,同时返回满足条件的table1的行,没有匹配的行将返回NULL。

右连接同样可以添加多个,例如:

SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column
RIGHT JOIN table3
ON table2.column = table3.column

上述查询中,将返回table3中所有的行,同时返回满足条件的table2和table1的行,没有匹配的行将返回NULL。

五、全连接的使用

全连接是指返回两个表中所有的数据,如果没有匹配的行将返回NULL。全连接使用FULL OUTER JOIN关键字:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column

上述查询中,将返回table1和table2中所有的行,如果没有匹配的行将返回NULL。

全连接同样可以添加多个,例如:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column
FULL OUTER JOIN table3
ON table2.column = table3.column

上述查询中,将返回table1,table2和table3中所有的行,如果没有匹配的行将返回NULL。