SQL - 加入3个或更多表的传统方法

时间:2012-07-26 04:25:08

标签: sql oracle join

我正在学习一些SQL,我想知道加入3个或更多表的传统方式是什么。

我知道使用NATURAL JOIN和JOIN ON。我在想加入使用也是可能的吗?但我听说有一种传统的做法,但是,我无法弄明白。

我尝试了以下内容:

SELECT c#, fn, ln, cat
FROM TABLE1, TABLE4
WHERE (TABLE1.c# = TABLE2.c#
AND TABLE3.o# = TABLE2.o#
AND TABLE4.i = TABLE3.i);

但我总是收到错误ORA-00904:无效的标识符%s

有人关心帮助我,或指出我正确的方向吗?

由于

1 个答案:

答案 0 :(得分:4)

在你的例子中:

SELECT c#, fn, ln, cat
FROM TABLE1, TABLE4
WHERE (TABLE1.c# = TABLE2.c#
AND TABLE3.o# = TABLE2.o#
AND TABLE4.i = TABLE3.i);

...您的WHERE子句引用缺少的表TABLE2和TABLE3。

你会想要这个:

SELECT c#, fn, ln, cat
FROM TABLE1, TABLE4
WHERE TABLE1.c# = TABLE4.c#;

OR

SELECT c#, fn, ln, cat
FROM TABLE1, TABLE2, TABLE3, TABLE4
WHERE (TABLE1.c# = TABLE2.c#
AND TABLE3.o# = TABLE2.o#
AND TABLE4.i = TABLE3.i);

......我猜你在使用Oracle?带有'#'的列标识符是否有效?