我有2个表,一个列出属性(房屋,公寓等),另一个表包含图像文件名和一个链接到相关属性的ID。
现在,我需要将它们连接在一起,但是在某种程度上我只返回一次返回的属性信息,然后是链接的X个图像记录。
我使用LEFT JOIN取得了一些成功,因为我可以选择记录,但它会返回属性的重复信息,例如1链接到3个图像的属性将返回LEFT JOIN查询的3个结果,因此在我的输出页面上,打印3次详细信息。
接下来的部分是如何打印属性详细信息(现在应该是单数)和多个图像信息?
希望你能帮忙!
答案 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中,您将查看生成的查询,并且可以展开每个文件列,并在结果数组上循环以显示图像。