MySql选择查询帮助-如何计算查询出现的次数
我目前有以下问题:MySql选择查询帮助-如何计算查询出现的次数,mysql,select,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 | +------+ 但是我希望输出有两列,右列计算左列在查询中出现的次数。。因此,我希望输出与此
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';
您忘记了GROUPBY子句将每个“S_ID”放在自己的行中
从…中选择S_ID、计数(*)。。。分组依据S_ID您需要使用分组依据:
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;