我正在使用Oracle SQL,因此外連接具有nice(+)語法。我應該警告你,我不允許重新設計數據庫;我爲一個大型組織工作。在Oracle中使用IN運算符進行外連接的解決方法
下面是一些例子表:
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.Attribute IS NULL」 什麼)
但實際上我不允許在外連接中使用OR!我應該怎麼做呢?
你的查詢對我來說工作得很好:http://www.sqlfiddle.com/#!4/14c50/1 – mellamokb
@mellamokb這真的很棒,但也許和我使用的版本不一樣。這裏是我的錯誤:例外:DBD,ORA-01719:OR或IN的操作數中不允許使用外連接運算符(+)狀態:N/A –