单个查询中的MySQL JOIN和COUNT

时间:2011-05-04 01:37:02

标签: mysql sql join left-join

我正在尝试将两张桌子连在一起并获得外键的数量...... 对不起,但我真的不怎么解释自己,所以让我演示一下:

对于订单,我有1个表''orders',其中包含以下字段:

id, f_name, l_name, credit_card, ETC.

然后,我在订单中有一个'orders_details'表,如下所示:

id, order_id, product_id, qty

现在,我想运行一个连接2个表的查询,在订单表中每行获得1行,并使用一列告诉我每个订单中有多少产品。

有人知道如何实现这个目标吗?

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

1 个答案:

答案 0 :(得分:10)

SELECT o.id, o.f_name, o.l_name, COUNT(od.id), COALESCE(SUM(od.qty), 0)
FROM orders o
LEFT JOIN order_details od ON o.id = od.order_id
GROUP BY o.id, o.f_name, o.l_name