2013-03-03 65 views
0

我有4個表 - 公司,項目,工人,任務 每個公司有幾個項目, 每個項目有幾個工人, 每個工人有幾個任務。4表深度mysql查詢

在任務表中,有一個「estimated_cost」字段。我想要查看所有公司的列表,但我希望它按照具有最高estimated_cost任務的estimated_cost排序。

任何想法?

+0

只是爲了澄清,你想每個公司最高的估計成本? – 2013-03-03 13:02:04

+0

不可以。如果一家公司擁有項目,工人等,任務估計成本爲1000美元,另一家公司擁有項目,工人等,以及估計成本爲999美元的數百項任務,我仍然希望先看1000美元任務的公司。 爲了澄清,我想找到每個公司最昂貴的任務。 – Avenger 2013-03-03 13:03:55

回答

1

我使用MSSQL不是MySQL,所以語法可能不是100%...但試試這個。

SELECT company.name, MAX(estimated_cost) AS HighestCost 
FROM companies 
INNER JOIN projects ON projects.companyid = projects.id 
INNER JOIN workers ON workers.projectid = workers.id 
INNER JOIN tasks ON tasks.workerid = tasks.id 
GROUP BY company.name 
ORDER BY HighestCost DESC 
+0

作品!謝謝! – Avenger 2013-03-03 14:35:30