2011-05-04 101 views
4

我试图将2个表连接在一起并获得外键的计数... 对不起,但我真的不怎么解释我自己,所以让我来演示一下:MySQL JOIN和COUNT中的单个查询

我有1台,“订单”,订单,具有以下字段:

id, f_name, l_name, credit_card, ETC. 

然后,我有顺序的项目,像这样的“orders_details”表:

id, order_id, product_id, qty 

现在,我想要运行一个查询加入这两个表,在订单表中每行获得1行,列中告诉我每个订单中有多少产品。

有人知道如何做到这一点?

P.S.我还希望能够获得订单的所有'数量'的总数(我不想为每个订单运行单独的查询)。

回答

10
​​
+1

哇,这很快,谢谢。 – 2011-05-04 01:58:41

+0

@John请记住,如果你在'SELECT'子句中添加更多的列,你还需要将它们添加到'GROUP BY' – Phil 2011-05-04 02:08:36

+1

@John:实际上在MySQL中,你不必包含所有的非 - GROUP BY中聚合的列/表达式。 MySQL允许您使用删减的GROUP BY,您只需要包含唯一定义您选择的所有其他非汇总数据的键列或表达式。不过,我认为菲尔的建议值得关注,因为大多数其他RDBMS不支持删除的GROUP BY,并且谁知道您是否决定开始学习并使用另一种SQL方言。 – 2011-05-04 16:08:36