2016-07-02 62 views
0

我有两张表,分别是propertiesproperty_images。在性能和property_images表中的字段如下MySQL查询获取所有照片

性能

property_id 
name 
address 
city 
type 

property_images

prop_img_id 
photoname 
property_id 

我有一个查询获得的两个表的结果。但是当我运行查询时,每个属性只有一个图像。但是我得到正确的图像数量。我想获取查询中某个媒体资源的所有照片。查询我的是这样的:

SELECT *, photo, COUNT(property_photo.photo) as photocount 
FROM properties LEFT JOIN 
    property_photo 
    ON properties.property_id = property_photo.property_id 
GROUP BY properties.property_id 
LIMIT 6 

回答

0

您可以使用GROUP_CONCAT()

SELECT p.*, COUNT(pp.photoname) as photocount, 
     GROUP_CONCAT(pp.photoname SEPARATOR '|') 
FROM properties p LEFT JOIN 
    property_photo pp 
    ON p.property_id = pp.property_id 
GROUP BY p.property_id 
LIMIT 6; 

这使照片的名称在一个字符串,用竖线分隔每个名称。

0

使用内部查询获得计数,然后用照片属性加入它

select tt.photo,t.photocount from property_photo tt inner join 
(SELECT p.property_id, COUNT(pp.photo) as photocount 
    FROM properties p LEFT JOIN property_photo pp 
ON p.property_id = pp.property_id GROUP BY p.property_id) t on t.property_id=tt.property_id;