-- step 1.创建临时表,命名为item_orders
create temporary table item_orders
(
item_id int,
orderList varchar(1000)
)
-- step 2.将查询到的数据放入临时表
insert into item_orders
select item_id,GROUP_CONCAT(order_id) from itemorder
group by item_id
--其中,GROUP_CONCAT是一个mysql内置函数,用于分组之后的多行拼接成一行(之间以逗号分隔),其参数为列名
-- step 3.将临时表与其他表做连接查询,得到结果
select a.item_name,b.orderList from item_details a
join item_orders b on a.item_id=b.item_id
其中,insert into item_orders select item_id,GROUP_CONCAT(order_id) from itemorder group by item_id 可以使得
例如,
数据库的结构如下:
no item
01 AA
01 BB
02 CC
02 DD
02 EE
03 FF
04 GG
04 HH
将no相同的列整合为一条记录如下
no items
01 AA,BB
02 CC,DD,EE
03 FF
04 GG,HH