1

現在、次のクエリがあります。

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  |
+------+

しかし、出力には2つの列が必要です。右の列は、左の列がクエリに表示された回数をカウントするためです..だから、出力は次のようになります。

+------+-------+
| 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';
4

2 に答える 2

1

GROUP BY 句で各 "S_ID" をそれぞれの行に入れるのを忘れました

select S_ID, count(*) from ... S_ID でグループ化

于 2012-05-03T01:31:56.910 に答える
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;
于 2012-05-03T01:33:33.417 に答える