私は4つのテーブルを持っています - 会社、プロジェクト、労働者、タスク 各会社にはいくつかのプロジェクトがあり、各プロジェクトには複数の労働者がいて、各労働者にはいくつかのタスクがあります。
タスク テーブルには、「estimated_cost」フィールドがあります。すべての会社のリストを表示したいのですが、その中で最も高い Estimated_cost を持つタスクの Estimated_cost でソートしたいと考えています。
何か案は?
MySQLではなくMSSQLを使用しているため、構文が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