2012-05-03 28 views
1

我現在有這個疑問:MySql的選擇查詢幫助 - 如何算次查詢出現了數

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

回答

1

你忘了GROUP BY子句讓每個 「S_ID」 在自己的行

選擇S_ID,通過S_ID

從...組COUNT(*)
+0

Ooooh是對的T____T非常感謝你! – user1355122

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;