我有这样的表:
_______________________________________________
| 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组项目。
我尝试使用“group by”语句,但在这种情况下它不起作用
我怎么能撰写这样的查询?
谢谢!
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 |
-----------------------------------------------
仅限前两组
SELECT * FROM my_table ... LIMIT 3,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)
尝试使用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