我有一个适用于 MySQL 的 Oracle SQL,但是当我在 Oracle 上运行时,我得到了“缺少右括号”。
我把它放在sqlfiddle
Oracle 没有CASE
像 MySQL 一样使用 or if 的简写方式。因此,您将不得不使用CASE
您的内部sum
:
select p.id, p.name,
t.id as toyid,
t.name as toyname
from person p
inner join toys t on p.id = t.person_id
inner join
(
select person_id
from toys
group by person_id
having sum(case when name = 'hat' then 1 else 0 end) > 0 and
sum(case when name = 'doll' then 1 else 0 end) > 0
) t2
on p.id = t2.person_id;