Я не так много работаю с SQL, поэтому я немного растерялся.
У меня есть три таблицы:
images (id, image_path)
shop_entries (id, title, ....)
shop_img (shop_id, img_id)
Я хочу отобразить все записи магазина и связанные с ними изображения.В настоящее время мой SQL возвращает разность shop_entries (каждый раз, когда с ним связано 1 изображение).Я хочу вернуть shop_entries только один раз, но с несколькими изображениями, связанными с ним.
Мой SQL выглядит следующим образом:
SELECT s.*, images.*
FROM shop_entries s
LEFT JOIN shop_img ON shop_img.shop_id = s.id
LEFT JOIN images ON images.id = shop_img.img_id
Обновление * Ответ ниже работал, но теперь я хотел добавитьдругая таблица к запросу, тот же принцип: помимо изображений у меня есть таблица «размеры» и «shop_sizes».
Этот запрос привел к двойным изображениям и двойным размерам, что здесь не так:
Select SE.*
, Group_Concat(I.path Order By I.path ASC Separator ', ') as images
, Group_Concat(S.title Order By S.title ASC Separator ', ') as sizes
From shop_entries As SE
Left Join shop_img As SI
On SI.shop_id = SE.id
Left Join images As I
On I.id = SI.img_id
Left Join shop_sizes As SS
On SS.shop_id = SE.id
Left Join sizes As S
On S.id = SS.size_id
Group By SE.id, SE.title