我需要在oracle中加入子查询。这不起作用我得到连接操作的语法错误
select s1.key, s1.value, s2.value
from ((select key, value
from tbl
where id = 1) as s1
join
(select key, value
from tbl
where id = 2) as s2
on s1.contract = s2.contract);
答案 0 :(得分:10)
您应该在内嵌视图中选择要加入的字段(contract
):
SELECT s1.key, s1.value, s2.value
FROM (
SELECT contract, key, value
FROM tbl
WHERE id = 1
) as s1
JOIN (
SELECT contract, key, value
FROM tbl
WHERE id = 2
) as s2
ON s1.contract = s2.contract
答案 1 :(得分:2)
你有一套太多的括号。
SELECT
s1.key,
s1.value,
s2.value
FROM (SELECT
key,
value
FROM tbl
WHERE id = 1) AS s1
JOIN (SELECT
key,
value
FROM tbl
WHERE id = 2) AS s2
ON s1.contract = s2.contract;
答案 2 :(得分:1)
摆脱最外面的括号。