Вот так ваш запрос выглядит намного лучше:
SELECT c.id, c.category, s.spot_name, s.category_id, s.description, s.slug, d.id, d.district, t.spot_id, t.tag
FROM spots AS s
LEFT JOIN categories AS c ON c.id = s.category_id
LEFT JOIN districts AS d ON d.id = s.district_id
LEFT JOIN tags AS t ON t.spot_id = s.id
Чтобы получить все места, которые вы хотели бы выполнить этот запрос:
SELECT c.id, c.category, s.spot_name, s.category_id, s.description, s.slug, d.id, d.district
FROM spots AS s
LEFT JOIN categories AS c ON c.id = s.category_id
LEFT JOIN districts AS d ON d.id = s.district_id
Теперь вы можете перебрать все пятна и получить их метки:
'SELECT t.tag FROM tags WHERE t.spot_id = '. (int)$spot_id