单个查询中的MySQL JOIN和COUNT

Joh*_*Alt 4 mysql sql join left-join

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

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

id, f_name, l_name, credit_card, ETC.
Run Code Online (Sandbox Code Playgroud)

然后,我有一个'orders_details'表,用于订单中的项目,如下所示:

id, order_id, product_id, qty
Run Code Online (Sandbox Code Playgroud)

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

有谁知道如何实现这一目标?

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

Phi*_*hil 11

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
Run Code Online (Sandbox Code Playgroud)