1
私は3つのテーブルのプロジェクト、時間、および費用があります。 3つすべてに参加し、合計を計算し、すべての一致するレコードを取得したいと思います。Php、MySqlは3つのテーブルを結合し、SUMを計算します
projects:
id name
=====================
1 First Project
2 Second Project
times:
id project_id hours billed
===================================================
1 1 2.0 1
2 1 3.0 0
3 2 4.30 0
expense:
id project_id amount billed
==================================================
1 1 120.00 0
2 2 35.00 1
3 2 55.00 0
4 2 45.00 0
、ここでは私のクエリです:ここで
は私のテーブルです
SELECT
SUM(t.hours) as total_hours,
SUM(e.amount) as total_amount,
p.name
FROM
`projects` AS p
LEFT JOIN `expense` AS e
ON e.project_id = p.id
LEFT JOIN `times` AS t
ON t.project_id = p.id
WHERE t.billed = 0
AND e.billed = 0
GROUP BY p.id;
しかし、私はそれが動作するように作る傾ける何らかの理由で、私はレコードなしで終わります。
結果は次のようになります。
Name Total Hours Total Expense
==============================================
First Project 3.00 120.00
----------------------------------------------
Second Project 7.30 100.00
----------------------------------------------
これらは内部結合実際にあります、 EXPLAIN EXTENDEDの後にSHOW WARNINGSが続きます。 – Strawberry
@colburtonエイリアスは実際には正しいです、それはテーブル名のタイプミスです。私は自分の投稿を更新しました。 – Alko