首页 > 解决方案 > 创建一个包含更多列的 sql 连接

问题描述

我想创建一个用逗号分隔的连接的 sql statemnt(在 PL SQL Developer 中)?

SELECT * FROM TABLE1 t1 JOIN TABLE2 t2 ON t1.tab_id, second_id = t2.tab_id, second_id;

我总是收到 ORA-00920 异常。如果我将其更改为两行:

t1.tab_id = t2.tab_id AND t1.second_id = t2.second_id;

然后我得到行。

如果我可以使用逗号分隔列的第一步,有人可以说我吗?

格雷茨

标签: sqljoinplsqlplsqldeveloper

解决方案


你需要一个有效的条件:

SELECT *
FROM TABLE1 t1 JOIN
     TABLE2 t2
     ON t1.tab_id = t2.tab_id AND t1.second_id = t2.second_id;

我认为甲骨文也会让你这样做:

SELECT *
FROM TABLE1 t1 JOIN
     TABLE2 t2
     ON (t1.tab_id, t1.second_id) in ( (t2.tab_id, t2.second_id) );

甚至:

SELECT *
FROM TABLE1 t1 JOIN
     TABLE2 t2
     USING (tab_id, second_id);

这是因为 JOIN 键在两个表中具有相同的名称。


推荐阅读