MySQL 临时表的使用

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

 参考:http://zhidao.baidu.com/link?url=nBf36qJy2vhUup9J3hBZKRbWHkVmNbo17ZrZXTnGvAqHxgOOSRqRPE6YEp7zbKwp-lovBvi15-vgq8ur6s534a

原文地址:https://www.cnblogs.com/aaronhoo/p/5757065.html