2016-07-02 11 views
0

私は2つのテーブルを持って、彼らはpropertiesproperty_imagesです。プロパティとproperty_imagesテーブルのフィールドは以下のようにすべての写真を取得するMySQLのクエリ

property_id 
name 
address 
city 
type 

property_images

prop_img_id 
photoname 
property_id 

私は両方のテーブルから結果を取得するクエリを持っている

プロパティです。しかし、私はクエリを実行すると、私は各プロパティのための1つの画像を取得します。しかし、私はイメージの数を正しく取得します。私は、クエリのプロパティのすべての写真を取得したい。私が持っているクエリはこれです:

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; 
関連する問題