Oracle sql工作表

0 sql oracle worksheet ora-00913

我正在尝试比较2列,目标是返回不匹配的行.例如,我在第1列和第2列中有以下内容

1                     2
id name age job       id  name  age  job
1   aaa  11 bbb        1   aaa   11   bbb
2   ccc  22 ddd        2   ccc   22   eee
Run Code Online (Sandbox Code Playgroud)

我正在寻找的回报是

2  ccc 22  ddd
2  ccc 22  eee 
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下内容

select id, name, age from 1 where id in
(
select id, name, age from 1
minus
select id, name, age from 2
)
union all
select id, name, age from 2 where id in
(
select id, name, age from 1
minus
select id, name, age from 2
)
order by id
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ORA-00913: demasiados valores
00913. 00000 -  "too many values"
*Cause:    
*Action:
Error at Line: 6 Column: 1
Run Code Online (Sandbox Code Playgroud)

这指的是第1行 (

任何帮助将非常感激.

And*_*rew 5

您获得的具体错误是由于以下原因:

where id in ( select id, name, age from
Run Code Online (Sandbox Code Playgroud)

您不能使用in子句将ID的单个值与3个其他值进行比较.

-- get values in 1 not in 2
SELECT 1.id, 1.name, 1.age 
FROM 1
LEFT JOIN 2 on 1.id = 2.id and 1.name = 2.name and 1.age = 2.age
WHERE 2.id is null
UNION
-- get values in 2 not in 1
SELECT 2.id, 2.name, 2.age 
FROM 2
LEFT JOIN 1 on 2.id = 1.id and 2.name = 1.name and 2.age = 1.age
WHERE 1.id is null
Run Code Online (Sandbox Code Playgroud)