Выбрать список тегов - 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 по условию, которое включает в себя подзапрос.

  1. SELECT * FROMtagsWHEREidIN (SELECTtag_idFROMimage_tagsWHEREimage_tags.image_idIN (97, 96, 95) GROUP BYimage_tags.image_id) — в этом запросе выбираются все строки из таблицы tags, в которых поле id соответствует значению, полученному в результате подзапроса.
  2. SELECTtag_idFROMimage_tagsWHEREimage_tags.image_idIN (97, 96, 95) GROUP BYimage_tags.image_id` — в этом подзапросе выбираются все значения поляtag_idиз таблицыimage_tags, в которых полеimage_id` соответствует одному из значений в списке (97, 96, 95). Результат этого запроса используется в основном запросе. Обратите внимание, что для обозначения названий и значений переменных используются кавычки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5