1

invoices (別のテーブルに*invoice item *s があり、s にリンクされている)の価格を計算するために、invoice次のクエリを作成しました。

SELECT `i`.`id`, SUM(ii.unit_price * ii.quantity) invoice_price
FROM (`invoice` i)

JOIN `invoiceitem` ii
ON `ii`.`invoice_id` = `i`.`id`

WHERE `i`.`user_id` = '$user_id'

しかし、結果は1行だけでした。

調査GROUP BY i.idの結果、クエリの最後に必要であることがわかりました。これで、結果は予想通りでした。

私の意見では、 がなくてもGROUP BY i.id、何も失われることはなく、うまく機能するはずです!

簡単な文章で教えてください...

なぜ私は常に追加を使用する必要があるのですか!!! GROUP BY i.id、それなしで失われるもの、そしておそらく最も機能する質問として、追加のものを失ったことをどのように覚えるべきGROUP BYですか?!

4

2 に答える 2

4

合計に含まれる ID が多数あるため、group by を含める必要があります。指定しない場合、MySQL は最初のものを選択し、結果セット全体を合計します。GroupBy は、各 Grouped By Entity を合計する (または一般的に集計する) ように MySQL に指示します。

于 2013-06-27T19:46:46.667 に答える