2013-10-16 54 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 
相关问题