IDを使用して3つのテーブルをマージしましたが、4番目のテーブルを追加しようとすると出力が完全に壊れてしまいます(値は非現実的/間違っています)この4番目のテーブルはIDをグループ化していないので、この新しいテーブルに参加する前にそれらをグループ化する必要があるという事実と関係があります。1つのテーブルを別のテーブルとマージする前に1つのテーブルをグループ化する
SELECT name, SUM(money) AS MONEY
FROM transactions
JOIN results ON transactions.id = results.id
JOIN more ON results.per_id = more.per_id
GROUP BY name
HAVING SUM(money)>500
を、私は新しいテーブルに参加するとき:今クエリは以下の通りです
(JOIN newtable ON results.per_id = newtable.per_id GROUP BY per_id)
前:
SELECT name, SUM(money) AS MONEY, SUM(data_from_NT1), SUM(data_from_NT2)
FROM transactions
JOIN results ON transactions.id = results.id
JOIN more ON results.per_id = more.per_id
JOIN newtable ON results.per_id = newtable.per_id
GROUP BY name
HAVING SUM(money)>500
はper_id BYコマンドグループを実行することが可能となりますこの新しいテーブルをメインテーブルに追加しますか?上記の行は機能しません。
新しいテーブルと結果の間にはどのような関係がありますか?新しいテーブルに0、1つまたは複数のレコードが存在する可能性がありますか?私はあなたの結果値がトランザクションと結果で2倍になり、per_ID do notがmoreまたはnewTableに存在すれば、いくつかのレコードが削除されるかもしれないので、私は尋ねます。フル・ジョインの代わりにLEFTジョインを使用したいと思うかもしれません。予想される結果とともにいくつかのデータ出力が問題を特定するのに役立ちます。 – xQbert