2012-07-09 99 views
0

我有表的结构如下如何从另一个有相同ID的多个记录的表中获取记录?

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


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

和表1有如下记录

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在表2许多图像,现在我需要选择记录及其相应的图像(多个图像为相同的ID),如

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

您应该检查SQL中的联接。这是你所需要的。 – Hardik 2012-07-09 12:00:36

+0

@hardik感谢您的建议,我尝试加入,但**赞恩边**给出了我需要的确切答案。 – 2012-07-09 12:18:44

回答

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

谢谢:-)其工作。你节省了我的时间。 – 2012-07-09 12:13:29

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 
相关问题