Mysql SQL连接多个表
是的,我知道有一些题目,但我真的读了所有的题目,不能解决问题。 我在SQLFIDLE上显示了一个sql表: 所以我想要这样的结果: 我的意思是,我希望所有的数据都是结果,但我得到的是所有的数据,但不是序列列表,而是写空的。。。以下是我尝试过的:Mysql SQL连接多个表,mysql,sql,Mysql,Sql,是的,我知道有一些题目,但我真的读了所有的题目,不能解决问题。 我在SQLFIDLE上显示了一个sql表: 所以我想要这样的结果: 我的意思是,我希望所有的数据都是结果,但我得到的是所有的数据,但不是序列列表,而是写空的。。。以下是我尝试过的: SELECT sum(invoiceinput.total) as cons, materialtype.`type`, materialserie.serie, companies.companyName
SELECT sum(invoiceinput.total) as cons,
materialtype.`type`,
materialserie.serie,
companies.companyName
FROM invoiceinput JOIN
invoice ON invoiceinput.invoiceID=invoice.ID JOIN
companies ON companies.ID=invoice.companiesID JOIN
materialtype ON materialtype.ID=invoiceinput.materialTypeID LEFT JOIN
materialserie ON materialserie.ID=invoiceinput.materialTypeID
WHERE invoiceinput.materialTypeID
GROUP BY materialtype.ID, materialserie.ID, companies.ID, MONTH(21/04/2014)
ORDER BY MONTH(21/04/2014), companies.ID
因此,materialserie.ID=invoiceinput.materialserieID上应该有materialserie,而不是materialserie.ID=invoiceinput.materialTypeID上的materialserie。你能用你的样本数据更新SQLFIDLE以获得上述结果吗?@Dave抱歉,我无法处理:)我之所以这么说是因为很难理解,看看他是如何生活的。如果你能添加它,那么得到回复的机会就更多了。但是,我也会在没有数据的情况下尝试。我实际得到的答案是:join中有一个错误:而不是materialserie上的join materialserie。ID=invoiceinput.materialTypeID应该是materialserie.ID=invoiceinput.materialserieID
SELECT sum(invoiceinput.total) as cons,
materialtype.`type`,
materialserie.serie,
companies.companyName
FROM invoiceinput JOIN
invoice ON invoiceinput.invoiceID=invoice.ID JOIN
companies ON companies.ID=invoice.companiesID JOIN
materialtype ON materialtype.ID=invoiceinput.materialTypeID LEFT JOIN
materialserie ON materialserie.ID=invoiceinput.materialserieID
WHERE invoiceinput.materialTypeID
GROUP BY materialtype.ID, materialserie.ID, companies.ID, MONTH(21/04/2014)
ORDER BY MONTH(21/04/2014), companies.ID