单个表上的Mysql复杂问题

时间:2015-06-04 17:50:48

标签: mysql sql

我有一个问题

假设有两个表

customer 

Cid  name 

CustomerImage

ImgId  Cid 

此处Cid是外键

我知道如果我想看到我将写的所有客户的所有图像

select customer.Cid, Customer.name , CustomerImage.ImgId from customer INNERJOIN CustomerImage where customer.Cid= CustomerImage.Cid 

这显示了具有客户ID和名称

的每个图像的列表 如果我想在一列中显示一个Cid的所有图像

,我应该在此添加什么
Cid   image name

因此image列应包含客户的所有ImgId

1 个答案:

答案 0 :(得分:3)

我认为您想要的是将每个客户的所有图像分组在一行中,您可以使用MySQL中的group_by子句和group_concat函数来实现:

select c.Cid
     , с.name
     , group_concat(ci.ImgId separator ',')
from customer c
join CustomerImage ci on c.Cid = ci.Cid 
group by  c.Cid
        , c.name