【发布时间】:2017-04-10 13:03:56
【问题描述】:
考虑以下查询:
SELECT COUNT(table1.someField), COUNT(table2.someField)
FROM table1
INNER JOIN table2 ON table2.id = table1.id
GROUP BY table1.id
我试图了解table1.id 分组和table2.id 分组之间的区别(如果有的话)。简而言之,当在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 选项之间是否存在差异。在这种情况下,我在文档中找不到有关 GROUP BY 行为的相关信息,因此非常感谢任何有关澄清此事的帮助。
【问题讨论】:
标签: mysql group-by inner-join