我有一個我似乎無法處理的挑戰。如何在MySQL中使用組合數據行獲得TOP 10?
+------+--------+-----------+-------+
| id | user | genres | books |
+------+--------+-----------+-------+
| 1 | John | crimes | 2 |
| 2 | John | scienc | 1 |
| 3 | John | nature | 4 |
| 4 | Pete | nature | 3 |
| 5 | Pete | crime | 2 |
| 6 | Mary | nature | 20 |
+------+--------+-----------+-------+
我想有一個SQL查詢,獲取用戶自己的電子書的總金額,不論流派,並想通過誰擁有最多的命令他們。
在這個例子中,你看到瑪麗20本書,皮特5和約翰有7個,所以我期望的結果會是這樣一個數組:
result[0][user] = "Mary";
result[0][total] = 20;
result[1][user] = "John";
result[1][total] = 7;
result[2][user] = "Pete";
result[2][total] = 5;
我怎樣才能得到這個成一個SQL?我應該使用CONCAT還是TOP?我使用MySQL & PHP。
如果我使用GROUP BY,我是否不跳行?他們都會被包含在SUM()中嗎? 關於您關於正常化點...你是正確的,但我用一個例子在這裏得到簡單:-) – Glooh 2012-04-06 12:28:21
@glooh這就是GROUP BY的地步。它會爲每個用戶的所有行進行求和。 – liquorvicar 2012-04-06 12:48:32