0

我正在尝试在 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, Topic=Topic 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 中不起作用。

4

1 回答 1

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 演示

于 2012-10-18T06:09:55.623 回答