我使用的是Oracle SQL,所以外部连接具有很好的(+)语法。我应该警告你,我不允许重新设计数据库;我在一家大公司工作。
以下是一些示例表:
People
PersonID Name
1 Elmo
2 Oscar
3 Chris
Attribute
PersonID Attribute
1 Happy
1 Muppet
1 Popular
2 Grouchy
2 Muppet
2 Popular
3 Programmer
我想要一份人的名单,我想知道我们是否知道他们是快乐的还是脾气暴躁的。以下是我想要的输出:
Name Mood
Elmo Happy
Oscar Grouchy
Chris
以下是我想使用的查询:
SELECT p.Name, a.Attribute
FROM People p, Attributes a
WHERE p.PersonID = a.PersonID (+)
AND ( a.Attribute (+) = Happy
OR a.Attribute (+) = Grouchy )
(也许我必须加上“OR a.属性为空”之类的。)
但事实上,我根本不允许在外部连接中使用OR!我实际上应该做什么?