Похоже, вам нужно написать вложенные запросы для отображения того, что вы хотите.
Если это так (я не эксперт по SQL), я бы порекомендовал вам начать с самого внутреннего запроса, затем вы выходите из него, пока не достигнете самого внешнего (и последнего) запроса.
Сначала вы должны извлечь PIMG и сгруппировать их по PRPT.
SELECT PRPT_Id, COUNT(PIMG_Id) AS PRPT_ImageCount, MIN(PIMG_Id) AS PRPT_MinImage
FROM PropertyImages
GROUP BY PRPT_Id
Получает PRPT_Id свойств, с которыми связаны изображения. Однако вы не получите никаких результатов для свойств, которые не имеют связанных изображений.
После этого мы оставим объединение таблицы свойств с предыдущим запросом. Левое объединение гарантирует, что все свойства будут получены, даже если они не отображаются в результатах правильного запроса (то есть, даже если у них нет связанных изображений).
SELECT Properties.*, PRPT_ImageCount, PRPT_MinImage
FROM Properties LEFT JOIN (
SELECT PRPT_Id, COUNT(PIMG_Id) AS PRPT_ImageCount, MIN(PIMG_Id) AS PRPT_MinImage
FROM PropertyImages
GROUP BY PRPT_Id ) Temp ON ( Properties.PRPT_Id = Temp.PRPT_Id )
Я надеюсь, что мой SQL не ошибается и что этот пост поможет вам.
С уважением,
Edit:
SELECT Properties.*,
PRPT_ImageCount,
PRPT_MinImage,
PIMG_ImageName
FROM ( Properties LEFT JOIN
( SELECT PRPT_Id,
COUNT(PIMG_Id) AS PRPT_ImageCount,
MIN(PIMG_Id) AS PRPT_MinImage
FROM PropertyImages
GROUP BY PRPT_Id ) Temp1
ON ( Properties.PRPT_Id = Temp1.PRPT_Id ) ) Temp2 LEFT JOIN
PropertyImages ON ( PropertyImages.PIMG_Id = Temp2.PRPT_MinImage )
Теперь я действительно не уверен в своем SQL.