我正在尝试在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中不起作用。
答案 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