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、AppprovBy、PostedBy は UID に関連付けられた外部キーです。

最初のトピックが作成されると、fID=1、Topic=Topic 1、InitiBy=2、AppprovBy=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

このクエリは結果を返しません。Approby 列と 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 に答える