У меня есть 3 такие таблицы:
изображения (~ 10000 строк)
id | place_id | filename
---|----------|----------
1 | 4 | abc.jpg
2 | 3 | def.jpg
3 | 4 | ghi.jpg
4 | 7 | jkl.jpg
теги (~ 100 строк)
id | name |
---|----------|
1 | tagA |
2 | tagB |
3 | tagC |
4 | tagD |
tagsToImages (~ 30 000строки)
id | tag_id | image_id
---|----------|----------
1 | 1 | 4
2 | 3 | 2
3 | 2 | 4
4 | 1 | 1
Например, последняя таблица показывает, что тег с id = 1 связан с изображением с id = 4.
У меня два вопроса, одиндовольно простой (я думаю!), и еще один сложный.
Простой вопрос
Учитывая place_id, как я могу перечислить все теги, которые имеют изображение в этом place_id?Например:
Учитывая place_id = 7, вернуть tagA, tagB.
Трудный вопрос
Что я хотел бы сделать, этовыберите все изображения с определенным идентификатором place_id и свяжите каждое изображение со списком тегов, например, так:
Выберите все с place_id = 4, при присоединении к информации тегов.
filename | tags
-----------------------
abc.jpg | tagA
ghi.jpg | tagA, tagB
Будетэто лучше сделать в PHP, выполнив несколько запросов, или я могу сделать это с помощью MYSQL?