У меня такой запрос, что мне нужно получить
- Конкретная собака
- Все комментарии, связанные с этой собакой
- Пользователь, оставивший каждый комментарий
- Все ссылки на изображения собаки
- пользователь, который разместил каждую ссылку
Я пробовал несколько вещей, и не могу понять, как это сделать. Вот что у меня есть (сжато, чтобы вам не пришлось разбираться со всем этим):
SELECT s.dog_id,
s.name,
c.comment,
c.date_added AS comment_date_added,
u.username AS comment_username,
u.user_id AS comment_user_id,
l.link AS link,
l.date_added AS link_date_added,
u2.username AS link_username,
u2.user_id AS link_user_id
FROM dogs AS d
LEFT JOIN comments AS c
ON c.dog_id = d.dog_id
LEFT JOIN users AS u
ON c.user_id = u.user_id
LEFT JOIN links AS l
ON l.dog_id = d.dog_id
LEFT JOIN users AS u2
ON l.user_id = u2.user_id
WHERE d.dog_id = '1'
Это похоже на работу, но она вернет мне только первый комментарий и первую ссылку в виде одного большого массива со всей информацией, которую я запросил. Это несколько комментариев и ссылок на собаку, поэтому мне нужно дать мне все комментарии и все ссылки. В идеале это будет возвращать объект с dog_id, именем, комментариями (массивом комментариев), ссылками (массивом ссылок), и тогда комментарии будут иметь кучу комментариев, date_added, username и user_id, а ссылки будут иметь связка ссылок со ссылкой, date_added, username и user_id. Это должно работать, даже если нет ссылок или комментариев.
Я изучил основы mySQL в последнее время, но это довольно далеко у меня над головой. Любая помощь будет замечательной. Спасибо!