2017-07-06 93 views
0

得到物品我有表是這樣的:MySQL的:通過

_______________________________________________ 
| item_id | group_id | item_name | quantity | 
----------------------------------------------- 
|  1 | 0001  | cup_1 |  5 | 
----------------------------------------------- 
|  2 | 0001  | cup_2 |  3 | 
----------------------------------------------- 
|  3 | 0002  | spoon_1 |  2 | 
----------------------------------------------- 
|  4 | 0002  | spoon_2 |  2 | 
----------------------------------------------- 
|  5 | 0003  | table_1 |  6 | 
----------------------------------------------- 
|  6 | 0004  | table_2 |  7 | 
----------------------------------------------- 
|  7 | 0004  | table_3 |  1 | 
----------------------------------------------- 
|  8 | 0005  | chair_1 |  5 | 
----------------------------------------------- 
|  9 | 0005  | chair_2 |  4 | 
----------------------------------------------- 

我需要展現給用戶從該表中20個項目,但具有相同的GROUP_ID項目應在一個分組。 因此,cup_1和cup_2就像一個項目。 問題是組中可能有任何數量的項目。 所以實際上我需要展示20組物品。

我嘗試「按組」語句中使用,但它並沒有在這種情況下

工作,我怎麼能撰寫這樣的查詢?

謝謝!

UPD。 我試圖讓第一個'n'組(或下一個'n'組 - 它是用於目錄)中的項目。 結果應該與上表類似。 例如:

SELECT * FROM my_table ... LIMIT 1,2

_______________________________________________ 
| item_id | group_id | item_name | quantity | 
----------------------------------------------- 
|  3 | 0002  | spoon_1 |  2 | 
----------------------------------------------- 
|  4 | 0002  | spoon_2 |  2 | 
----------------------------------------------- 
|  5 | 0003  | table_1 |  6 | 
----------------------------------------------- 

第2組僅

SELECT * FROM my_table ... LIMIT 3,2 - 未來2組等等:

_______________________________________________ 
| item_id | group_id | item_name | quantity | 
----------------------------------------------- 
|  6 | 0004  | table_2 |  7 | 
----------------------------------------------- 
|  7 | 0004  | table_3 |  1 | 
----------------------------------------------- 
|  8 | 0005  | chair_1 |  5 | 
----------------------------------------------- 
|  9 | 0005  | chair_2 |  4 | 
----------------------------------------------- 

引擎:MyISAM數據

+0

你可以提供你所期望的輸出的例子嗎? –

+0

@SebastianBrosch完成 – tack

+0

您的輸出不清楚。 –

回答

0

嘗試使用Coalesce function

SELECT 
    Coalesce(item_id,0) as item_id, 
    group_id, 
    Coalesce(item_name,0) as item_name, 
    Coalesce(quantity,0) as quantity 
FROM my_table 
GROUP by group_id 

順便說一句,在MySQL這將工作太:

SELECT * 
FROM my_table 
GROUP by group_id 
+0

這不是真的我需要什麼。它給了我像1 ... 11-11 ... cup_1 ... 5下一個3 .... 22-11 ... spoon_1 .. 2的列表。但是我需要第一批'n'組中的所有物品。我用輸出更新了我的帖子 – tack