2つのテーブル間でLEFTOUTERJOINを使用して、NULL値を返すSQLクエリを取得しようとしています。
1つのテーブルにはユーザー情報が含まれ、もう1つのテーブルにはロールコール情報が含まれます。基本的に、私は誰かが毎月ロールコールに署名したかどうかを表示するHTMLテーブルを生成しようとしています。値がNULLの場合は、そのロール呼び出しの時点でメンバーではなかったことを意味します。
私が今抱えている問題は、それらが複数のロール呼び出しのメンバーでなかったとしても、クエリが1つのNULL値しか返さないことです。ユーザーが複数のロールコールのメンバーではなかった場合に使用しているクエリは次のとおりです。
SELECT m.userid, r.status, r.rollcallid
FROM fleetmgr_members AS m
LEFT OUTER JOIN fleetmgr_rollcall_log AS r
ON m.userid = r.userid AND r.rollcallid IN(1, 5)
WHERE m.userid = 2089
ORDER BY m.currentName, r.rollcallid;
このクエリは次を返します。
userid status rollcallid
2089 NULL NULL
私はそれを返したい:
userid status rollcallid
2089 NULL 1
2089 NULL 5
いくつかの奇妙な理由で、私がそれを返したいものを達成することは私を完全に困惑させました-それであなたが提供できるどんな援助にも前もって感謝します。
fleetmgr_rollcall_logテーブル:
id rollcallid userid date_signed status activity comments
2 1 652 1330563886 signed 6-8 hrs/week -
29 1 2462 1330565521 signed 9-11 hrs/week -
1823 5 731 1333300321 signed 0-2 hrs/week -
2293 5 166 1333901983 exempt 0-2 hrs/week -
fleetmgr_membersテーブル:
id userid currentName
1 3 SomeUsername
2 5 DifferentUsername