3
這是兩個表。左連接無結果
tbl_Invoice
tbl_Payment
我要的是Pending Invoices
由一個特定的客戶端。
現有查詢是如下:
Select * from tbl_Invoice I
left join tbl_payment P on I.client_id = P.client_id
left join tbl_client C on I.client_id = C.client_id
where I.invoice_Id not in (P.invoice_Id)
and I.client_id = 8
但它給空白結果監守支付表是空白。
不錯.. !!你能解釋一下嗎? –
'I.invoice_Id不在(P.invoice_Id)中'如果tbl_payment爲空則返回'NULL'。邏輯語句中'NULL'被視爲FALSE;所以你得到空的結果集。一般來說,當你使用'LEFT JOIN'時,你不想把'left join''放入'where',因爲它將你的'left join'變成'inner'。異常 - 這是可以和常見的做法,使用'WHERE left_joined_table.primary_key_column IS NULL'來獲取父表中的所有記錄沒有詳細信息... – a1ex07
+1的解釋..謝謝 –