SQL CE中的条件查询,其中列具有NULL值

时间:2012-10-18 06:04:17

标签: mysql sql sql-server-ce

我正在尝试在SQL CE数据库的帮助下创建工作流程。

**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中不起作用。

1 个答案:

答案 0 :(得分: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