我有一種情況,我再次運行查詢表MEMBERS,MEMBERUDFS和MEMERUDFSETUPS。 MEMBER UDF是用戶定義的字段,由系統管理員創建,用於在可定製字段中存儲有關客戶的數據。 UDFSETUPS表定義可配置的字段,MEMBERUDFS存儲這些字段的值(如果它們存在)。空值不被退回
我遇到的問題是當我拉回數據時,我沒有得到具有ID爲17(MEMBERUDFS.udfid ='17')的UDF沒有條目的條目的行或爲空。我嘗試了左連接,但它似乎沒有幫助。
SELECT MEMBERS.scancode, MEMBERS.fname, MEMBERS.lname, MEMBERS.datejoin, MEMBERS.entrydate
, MEMBERS.relationship, MEMBERUDFS.udfvalue
FROM MEMBERS
LEFT OUTER JOINMEMBERUDFS
ON MEMBERS.memid = MEMBERUDFS.memid
INNER JOIN MEMBERUDFSETUPS
ON MEMBERUDFS.udfid = MEMBERUDFSETUPS.udfid
WHERE (MEMBERS.siteid = @rvSite)
AND (MEMBERS.status = 'A')
AND (MEMBERS.relationship = 'M')
AND (MEMBERUDFS.udfid = '17')
AND (MEMBERS.datejoin BETWEEN @rvStartDate AND @rvEndDate)
AND (MEMBERS.mtypeid NOT IN (5, 6, 7, 11, 14, 31))
OR (MEMBERS.siteid = @rvSite)
AND (MEMBERS.relationship = 'P')
AND (MEMBERUDFS.udfid = '17')
AND (MEMBERS.entrydate BETWEEN @rvStartDate AND @rvEndDate)
你還有一個'INNER JOIN'爲' MemberUDFSetups' –
'memberudf.udfid'在where子句中導致它們被排除在外,您需要將該限制移動到連接或檢查那裏的where子句中的空值。 – xQbert