【发布时间】:2012-05-15 11:30:41
【问题描述】:
在对 mysql 表中的一些元素进行分组后,我有一个关于计数的小问题, 我有一个订单表......其中每个订单都有几行按代码分组(命名为 codcomanda)......我必须做一个查询,计算每个客户的订单数量并仅列出订单的名称和数量。
这就是我想出的(这可能很愚蠢……我不是专业程序员)
SELECT a.nume, a.tel, (
SELECT COUNT(*) AS `count`
FROM (
SELECT id AS `lwtemp`
FROM lw_comenzi_confirmate AS yt
WHERE status=1 AND yt.tel LIKE **a.tel**
GROUP BY yt.codcomanda
) AS b
) AS numar_comenzi
FROM lw_comenzi_confirmate AS a
WHERE status=1
GROUP BY tel;
数字 = 名称
tel = PHONE(这是客户端的唯一标识符,因为没有登录系统)
上述查询的问题是我不知道如何将 a.tel 与第一个选择所在的那个匹配。如果我用数据库中的数字替换它,它就可以工作....
谁能帮助我如何引用该变量? 或者关于如何完成这项工作的另一种解决方案?
如果需要更多信息,我会尽快提供。
【问题讨论】:
-
我发现这可以工作,但生成需要 17 秒...
SELECT a.nume, a.tel, ( SELECT count( DISTINCT codcomanda ) FROM lw_comenzi_confirmate WHERE STATUS =1 AND tel LIKE a.tel ) AS numar_comenzi FROM lw_comenzi_confirmate AS a WHERE STATUS =1 GROUP BY tel ORDER BY numar_comenzi DESC