我正在学习一些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
有人关心帮助我,或指出我正确的方向吗?
由于
答案 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?带有'#'的列标识符是否有效?