考虑以下查询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行为的相关信息,因此有关澄清此问题的任何帮助将非常感谢。