首页 > 解决方案 > 我错过了任何类型的 JOIN 吗?

问题描述

在编写一些方法来简化在 Java 中使用连接时,我意识到连接可以采用许多我以前没有见过的形式。

我错过了任何类型吗?

-- Old-school inner/outer join, pre SQL-92
FROM t, u WHERE <predicate>

-- Inner joins
FROM t INNER JOIN u ON <predicate>
FROM t INNER JOIN u USING (<columns>)

-- Outer joins
FROM t LEFT OUTER JOIN u ON <predicate>
FROM t LEFT OUTER JOIN u USING (<columns>)
FROM t RIGHT OUTER JOIN u ON <predicate>
FROM t RIGHT OUTER JOIN u USING (<columns>)
FROM t FULL OUTER JOIN u ON <predicate>
FROM t FULL OUTER JOIN u USING (<columns>)

-- Cross join
FROM t CROSS JOIN u

-- Natural inner join
FROM t NATURAL INNER JOIN u

-- Natural outer joins
FROM t NATURAL LEFT OUTER JOIN u
FROM t NATURAL RIGHT OUTER JOIN u
FROM t NATURAL FULL OUTER JOIN u

-- Union join (defined in SQL-92, deprecated in SQL:2003)
FROM t UNION JOIN u

标签: sqlsql-serveroraclepostgresqldb2

解决方案


您的列表是完整的,但仅供参考INNER JOIN相当于JOIN在大多数 SQL 风格中只使用普通的。


推荐阅读