将多个条目连接到单个条目

时间:2011-07-23 13:39:22

标签: php mysql codeigniter

我有2个表,一个列出属性(房屋,公寓等),另一个表包含图像文件名和一个链接到相关属性的ID。

现在,我需要将它们连接在一起,但是在某种程度上我只返回一次返回的属性信息,然后是链接的X个图像记录。

我使用LEFT JOIN取得了一些成功,因为我可以选择记录,但它会返回属性的重复信息,例如1链接到3个图像的属性将返回LEFT JOIN查询的3个结果,因此在我的输出页面上,打印3次详细信息。

接下来的部分是如何打印属性详细信息(现在应该是单数)和多个图像信息?

希望你能帮忙!

1 个答案:

答案 0 :(得分:1)

您可以使用group_concat函数获取文件名列表。默认情况下,这只允许您在生成的group_concat字段中包含1k数据。

select prop.*, group_concat(filenames) as files
   from properties prop 
   join images on prop.id = images.prop_id
   where prop.owner_id = 'something'
   group by prop.id

如果您需要该字段中的更多数据,可以调整group_concat_max_len属性。

然后在PHP中,您将查看生成的查询,并且可以展开每个文件列,并在结果数组上循环以显示图像。

相关问题