2012-10-18 49 views
0

我想創建一個工作流與SQL CE數據庫的幫助。條件查詢在SQL CE其中列有NULL值

**Usr Table** 
UID FName LName 
1  Tim  Lake 
2  June  Stone 

**WFlow Table** 
fID Topic InitBy ApprovBy PostedBy 
1  Topic 1 2   NULL  NULL 
2  Topic 2 1   NULL  NULL 

UID和fID是主鍵和InitBy,ApprovBy,PostedBy是鏈接到UID的外鍵。

現在,一旦第一個主題創建FID = 1,主題=主題1,InitiBy = 2,ApprovBy = NULL,PostedBy = NULL。

我的SQL CE的查詢看起來是這樣的。

Select WF.fID, WF.Topic, 
U1.FName + U1.LName as InitiBy, 
U2.FName + U2.LName as InitiBy, 
U3.FName + U3.LName as InitiBy, 
from WFlow WF, Usr U1, Usr U2, Usr U3 
where W.InitiBy = U1.UID 
and W.ApprovBy = U2.UID 
and W.PostedBy = U3.UID 

此查詢不會返回任何結果。我無法處理ApprovBY和PostedBy列中的NULL。

感謝您的幫助。

感謝,

我也想知道查詢會如何不同的是MySQL的。在SQL-CE中,有人能夠幫助LEFT JOIN子句。但它似乎並沒有在mySQL中工作。

回答

2

您需要使用LEFT JOIN這個

Select WF.fID, WF.Topic, 
     U1.FName + ' ' + U1.LName as InitiBy, 
     U2.FName + ' ' + U2.LName as ApprovedBy, 
     U3.FName + ' ' + U3.LName as PostedBy 
from WFlow WF 
     LEFT JOIN Usr U1 
      ON WF.InitBy = U1.UID 
     LEFT JOIN Usr U2 
      ON WF.ApprovBy = U2.UID 
     LEFT JOIN Usr U3 
      ON WF.PostedBy = U3.UID 

SQLFiddle Demo

+0

有一個疑問.....如果WFlow表中有其他的外鍵,可以說DEPTID喜歡部門表,所以會有怎樣的代碼修改?? – cjv

+1

添加此行:'LEFT JOIN DeptTable d ON WF.DeptID = d.DeptID' –

+0

Perfecto !!!謝謝 !!! – cjv