我在客戶表中有一些數據,其他表中沒有數據。所以,當我嘗試使用下面的查詢來選擇,它給了我當沒有使用LEFT JOIN的結果時,Mysql列不能爲空錯誤
1048列「客戶ID」不能爲空
。可能是什麼問題呢。有沒有解決方案?
SELECT c.*, fd.ruakzat as ruak,
fd.khatzat as khat, 0+0 as belh, 0+0 as neih,
puk.lended as hawh
FROM `customer` c
LEFT JOIN (
SELECT s.customerid, o.orderzat as ruakzat,
f.filled as khatzat
FROM `sale` s
LEFT JOIN (
SELECT SUM(quantity) as orderzat,invoiceno
FROM `order`
WHERE fillstatus='Empty'
GROUP BY invoiceno
) AS o ON s.invoiceno=o.invoiceno
LEFT JOIN (
SELECT SUM(quantity) as filled,invoiceno
FROM `order`
WHERE fillstatus='Filled'
GROUP BY invoiceno
) AS f ON s.invoiceno=f.invoiceno
) AS fd ON c.id=fd.customerid
LEFT JOIN (
SELECT SUM(quantity) as lended, customerid
FROM `lending`
) AS puk ON c.id=puk.customerid
WHERE (puk.customerid IS NULL OR c.name LIKE '%%')
什麼是更好的方法?謝謝你的幫助。
看看'c.id = fd.customerid'單之一。你說其他表格中沒有customerid。看起來像fd.customerid來自'sale'表。 –
是的,你是對的。但該表中沒有數據。但customerid領域在那裏。 –
您是否正在嘗試'INSERT INTO ... SELECT'? – Philipp