我目前有这个查询:
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';
最佳答案
您忘记了 GROUP BY 子句让每个“S_ID”各占一行
select S_ID, count(*) from ... group by S_ID
关于MySql Select Query帮助——如何统计查询出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423937/