是否可以在不指定条件的情况下编写内部联接或外部联接?是ON condition
连接条件语法的一部分吗?
问问题
193 次
3 回答
12
使用ANSI SQL-92
语法时,ON
关键字是连接的一部分,除了 the,cross join
因为您没有关系的条件。
前任。
内部联接
SELECT *
FROM tableA INNER JOIN tableB
on tableA.ID = tableB.ID
交叉连接
SELECT *
FROM tableA CROSS JOIN tableB
ON
应该在连接表之后(如INNER 和 OUTER连接),这样你就不会出现语法错误。但如果您使用ANSI SQL-89
语法,ON
则省略关键字,但您必须在where clause
前任。
内部联接
SELECT *
FROM tableA, tableB
WHERE tableA.ID = tableB.ID
交叉连接
SELECT *
FROM tableA, tableB
它很容易出错,因为如果您忘记了条件,它不会产生语法错误并且可能会cross join
于 2012-08-01T22:50:27.450 回答
2
您可以在不使用 join-on 语法的情况下进行隐式连接:
select a.fred, b.joe from tableApple as a, tableBread as b
where a.key1 = b.key1
但我很确定显式连接需要 on 。您将收到不正确的语法错误。显式连接含义:
select a.fred, b.joe
from tableApple as a
left join tableBread as b
on a.key1 = b.key1
where a.key1 = 'sally'
于 2012-08-01T22:44:18.600 回答