Выбрать список тегов - MySQL
Формулировка задачи:
Делаю выборку тегов картинок из таблицы `image_tags` id|image_id|tag_id, теги хранятся в `tags` id|tag. Как одним запросом выбрать список тегов для картинок (IN (1, 2, 3...)) и при этом в запросе заменить ID тега на его имя?
Решение задачи: «Выбрать список тегов»
textual
Листинг программы
SELECT * FROM `tags` WHERE `id` IN (SELECT `tag_id` FROM `image_tags` WHERE `image_tags`.`image_id` IN (97, 96, 95) GROUP BY `image_tags`.`image_id`)
Объяснение кода листинга программы
В этом коде происходит выборка данных из таблицы tags
по условию, которое включает в себя подзапрос.
SELECT * FROM
tagsWHERE
idIN (SELECT
tag_idFROM
image_tagsWHERE
image_tags.
image_idIN (97, 96, 95) GROUP BY
image_tags.
image_id)
— в этом запросе выбираются все строки из таблицыtags
, в которых полеid
соответствует значению, полученному в результате подзапроса.SELECT
tag_idFROM
image_tagsWHERE
image_tags.
image_idIN (97, 96, 95) GROUP BY
image_tags.
image_id` — в этом подзапросе выбираются все значения поля
tag_idиз таблицы
image_tags, в которых поле
image_id` соответствует одному из значений в списке (97, 96, 95). Результат этого запроса используется в основном запросе. Обратите внимание, что для обозначения названий и значений переменных используются кавычки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д