📅  最后修改于: 2023-12-03 15:20:19.760000             🧑  作者: Mango
在SQL中,可以通过JOIN、UNION等方式查询多个表。下面将介绍几种SQL查询多个表的方式。
INNER JOIN是连接两个或多个表的最常用方式,返回匹配关系的行。
SELECT *
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name
在上面的例子中,我们查询了table1和table2两个表中,满足条件table1.column_name = table2.column_name的所有行。
OUTER JOIN可用于查询多个表间存在关系的行,包括LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。
SELECT *
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name
在上面的例子中,我们查询了table1和table2两个表中,所有table1中的行以及与之匹配的table2中的行。如果某些行没有匹配,它们将返回NULL。
UNION用于合并多个SELECT语句的结果集,并去除重复行。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2
在上面的例子中,我们将table1和table2中指定的列进行合并,并去除重复的行。
SUBQUERY是一种在SELECT语句中嵌套查询的方式。
SELECT *
FROM table1
WHERE column_name IN (
SELECT column_name
FROM table2
)
在上面的例子中,我们在table1的SELECT语句中使用了一个子查询,从table2的column_name中获取了一组值,并通过IN操作符将其与table1匹配。
公用表表达式(CTE)允许在一个查询中定义临时结果集,以便在后续的查询中使用它。
WITH cte_name AS (
SELECT column_name
FROM table1
),
cte_name2 AS (
SELECT column_name
FROM table2
)
SELECT *
FROM cte_name
INNER JOIN cte_name2 ON cte_name.column_name = cte_name2.column_name
在上面的例子中,我们使用了两个公用表表达式来创建两个临时结果集,并将它们连接起来。在后续的SELECT语句中使用它们来查询所需的数据。
以上是SQL查询多个表的几种常见方式。我们可以根据不同的需求和业务场景,选择最适合的方式来进行查询。