考慮以下查詢groupping:MySQL的GROUP BY和INNER JOIN - 通過連接字段
SELECT COUNT(table1.someField), COUNT(table2.someField)
FROM table1
INNER JOIN table2 ON table2.id = table1.id
GROUP BY table1.id
我試圖理解上的差異是什麼(如果有的話)groupping之間通過table1.id
和table2.id
groupping。總之,當內部連接X=Y
兩個表時,差異是什麼時分組由X
和什麼時候分組Y
。而已。
的現實世界的例子 - 很簡單:一臺transaction
保存交易信息(支付的金額,日期等),和一張桌子transaction_product
持有就哪些產品被列入其中的交易信息。
因此,例如,事務編號1可能包含產品編號1,2和3等等(因此表格關係顯然是一對多的)。
問題:我需要知道每筆交易,多少產品支付了多少。這是查詢,包括GROUP BY選擇:
SELECT
`transaction`.id,
SUM(`transaction`.transaction_amount) AS total_amount,
COUNT(`transaction_product`.product_id) AS number_of_products
FROM `transaction`
INNER JOIN `transaction_product` ON `transaction_product`.transaction_id = `transaction`.id
GROUP BY [`transaction`.id [OR] `transaction_product`.transaction_id]
我需要知道是否有被替代的兩組之間的差異。在這種情況下,我無法在文檔中找到有關GROUP BY行爲的相關信息,因此有關澄清此問題的任何幫助將非常感謝。