Связывание категорий с тегами с использованием SQL

0

Я хочу иметь возможность находить теги элементов под определенной категорией. Ниже приведен пример моего проекта базы данных:

      images
      +----------+-----+-------------+-----+
      | image_id | ... | category_id | ... |
      +----------+-----+-------------+-----+
      |    1     | ... |     11      | ... |
      +----------+-----+-------------+-----+
      |    2     | ... |     12      | ... |
      +----------+-----+-------------+-----+
      |    3     | ... |     11      | ... |
      +----------+-----+-------------+-----+
      |    4     | ... |     11      | ... |
      +----------+-----+-------------+-----+

      images_tags
      +----------+--------+
      | image_id | tag_id |
      +----------+--------+
      |     1    |   53   |
      +----------+--------+
      |     3    |   54   |
      +----------+--------+
      |     2    |   55   |
      +----------+--------+
      |     1    |   56   |
      +----------+--------+
      |     4    |   57   |
      +----------+--------+

теги и категории имеют свою собственную таблицу, связывающую идентификатор с фактическим именем (текстом). Поэтому мой вопрос заключается в том, как узнать, что изображения с category_id= 11 имеют tag_id 53 54 56 57.

Другими словами, как найти теги, которые имеют изображения в определенной категории?

  • 0
    В вашем примере вы не получите tag_id 55, хотя вы получите все остальные.
  • 0
    Хороший вопрос !, я исправил пост для будущих ссылок. Спасибо
Теги:

2 ответа

3
Лучший ответ

Может быть, внутренний SELECT сделает это? Что-то вроде:

 SELECT tag_id FROM images_tags WHERE image_id IN (SELECT image_id FROM images WHERE cateory_id = 11 )
  • 0
    Спасибо за ваш вклад, это выглядит проще.
  • 0
    Пожалуйста!
0

попробуйте следующее:

SELECT images.*, tags.* from images, tags where images.image_id = images_tags.image_id and  images.category_id = X;

Где X - желаемая категория.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню