2013-10-16 58 views
-9

我有三個表:
串連爲A和選擇根據其FKS A或B

IDcontacts | FirstName | LastName 
---------------------------------- 
1   | Walt  | Ne


IDcompany | CompanyName 
------------------------ 
1   | Universe


IDowner | IDcontacts | IDcompany 
--------------------------------- 
1  | 1   | NULL 
2  | NULL  | 1 
3  | NULL  | NULL


我需要一個查詢,這將使我下面的輸出:

IDoutput | Name 
-------------------- 
1  | Walt Ne 
2  | Universe 
3  | NULL
+2

「問題,要求代碼必須表現出對問題的理解最少包括嘗試的解決方案,爲什麼他們沒有工作和預期的結果「 – zero323

+1

對不起。我自己學習SQL,有些事情對我來說並不那麼明顯。 – JohnAPaul

+0

當你以這種方式提問時,SO的人可能會相當敵對,所以我對未來的暗示就是要表現出一些努力。 – zero323

回答

1

做一個連接,並得到即使其他記錄不存在,使用外連接的一半的結果。

要選擇列表,使用COALESCE的第一個非NULL值:正在解決

SELECT IDowner as IDoutput, 
     COALESCE(FirstName || ' ' || LastName, CompanyName) AS Name 
FROM Owner 
LEFT JOIN Contacts ON Owner.IDcontacts = Contacts.IDcontacts 
LEFT JOIN Company ON Owner.IDcompany = Company .IDcompany 
相關問題