MySql选择查询帮助 - 如何计算查询出现的次数

时间:2012-05-03 01:27:46

标签: mysql select

我目前有这个查询:

SELECT s_id FROM orderline,order_t WHERE orderline.o_id=order_t.o_id AND c_name='John Smith';

然后返回:

+------+
| s_id |
+------+
|  12  |
+------+
|  11  |
+------+
|  10  |
+------+
|  10  |
+------+

但是我希望输出有两列,右列可以计算左列在查询中出现的次数..所以我希望输出完全像这样:

+------+-------+
| s_id | count |
+------+-------+
|  12  |   1   |
+------+-------+
|  11  |   1   |
+------+-------+
|  10  |   2   |
+------+-------+

有可能吗?

我尝试过这个查询,但它显然是错误的,因为它计算了s_id的行数。

SELECT s_id,count(*) FROM orderline,order_t WHERE orderline.o_id=order_t.o_id AND c_name='John Smith';

2 个答案:

答案 0 :(得分:1)

您忘记了GROUP BY子句将每个“S_ID”放在其自己的行上

从S_ID

中选择S_ID,从...组中计数(*)

答案 1 :(得分:1)

您需要使用GROUP BY:

SELECT s_id, count(*) AS `count`
FROM orderline,order_t 
WHERE orderline.o_id=order_t.o_id AND c_name='John Smith'
GROUP BY s_id;