0

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

我知道使用 NATURAL JOIN 和 JOIN ON。我在想 JOIN USING 也是可能的吗?但是我听说有一种传统的方法可以做到这一点,但是我想不通。

我尝试了以下方法:

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: invalid identifier %s

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

谢谢

4

1 回答 1

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#;

或者

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);

...我猜你正在使用甲骨文?带有“#”的列标识符有效吗?

于 2012-07-26T04:37:03.840 回答