如何从具有相同ID的多个记录的另一个表中获取记录?

时间:2012-07-09 11:55:53

标签: php mysql join

我的表结构如下

table-1
-------
id
name


table-2
--------
imageId
id ( reference of table1.id)
image

和table1具有以下记录

id     name 
1      A
2      B
3      C

表2有

imageId      id          image
1             1         image1.jpg
2             1         image2.jpg
3             2         image3.jpg

即table1.id在table2中有很多图像,现在我需要选择记录及其相应的图像(同一个id的多个图像),如

id   name       image
1     A         image1.jpg,image2.jpg
2     B         image3.jpg

2 个答案:

答案 0 :(得分:1)

select
    b.imageId,
    a.id,
    b.imageName
from
    table-1 a
    right outer join table-2
        on a.id=b.id

这将为您提供输出:

id   name       image

1     A         image1.jpg
1     A         image2.jpg
2     B         image3.jpg

答案 1 :(得分:1)

您可以使用GROUP_CONCAT函数将多行中的值转换为单个逗号分隔的字符串(例如您在示例中所需的结果):

SELECT a.id, a.name, GROUP_CONCAT(b.image) AS images
FROM table1 a
INNER JOIN table2 b ON a.id = b.id
GROUP BY a.id, a.name