SELECT
m.id,
m. NAME,
m.`code`,
m.specification,
mt.`name` typeName,
m.unit,
ms.stocks,
SUM(mir.amount) allInNumber,
SUM(mor.amount) allOutNumber,
SUM(mrr.stockAmount) allReturnNumber
FROM
t_e_material_stock ms
LEFT JOIN t_e_material m ON ms.materialId = m.id
LEFT JOIN t_e_material_type mt ON ms.materialId = mt.id
LEFT JOIN t_e_material_in_record mir ON ms.materialId = mir.materialId
AND mir.nodeId = ms.nodeId
LEFT JOIN t_e_material_out_record mor ON ms.materialId = mor.materialId
AND mor.nodeId = ms.nodeId
LEFT JOIN t_e_material_return_record mrr ON ms.materialId = mrr.materialId
AND mrr.nodeId = ms.nodeId
WHERE ms.nodeId = 874
GROUP BY m.id
uj5u.com熱心網友回復:
mysql 的 GROUP BY 跟MSSQL 不一樣的額.寫出你測驗資料, 期望結果值, 別人才好測驗.
uj5u.com熱心網友回復:
你的意思是 原來用inner join 資料很少,現在用left join 就多嗎
uj5u.com熱心網友回復:
你確定基表是用t_e_material_stock ms嗎uj5u.com熱心網友回復:
left join 多個表的時候,left join后的表使用子查詢先把資料查出來在關聯,就可以啦uj5u.com熱心網友回復:
left join 的某個表里有多條資料與主表資料可以匹配上轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89511.html
標籤:MySQL
