MySQL объединяется с трюком из 3 таблиц - PullRequest
0 голосов
/ 12 февраля 2012

Я не могу получить желаемый результат, позвольте мне объяснить:

У меня есть две таблицы:

  • КАТЕГОРИИ
  • PROJECTS

и между ними еще одна таблица, создающая связь:

  • ASSIGNED_CAT с двумя столбцами: PROJECT_IDCATEGORY_ID

В ASSIGNED_CAT я получаю идентификаторы CATEGORIES и PROJECTS, связанные вместе.


Теперь мне нужно получить КАТЕГОРИИ, которые содержат ПРОЕКТЫа если нет, то не показывать их.

Пример:
Если в КАТЕГОРИИ 1 есть проекты, отобразите ИМЯ КАТЕГОРИИ, а если нет, то.

Любойидея обмануть это?Я пробовал много SQL JOIN безуспешно.

1 Ответ

1 голос
/ 12 февраля 2012

Полагаю, вам не хватает пункта EXISTS.

Следующий запрос выбирает все категории, для которых в таблице пересечений существует хотя бы одна строка.

SELECT category_name
FROM categories c
WHERE EXISTS (
    SELECT 1
    FROM assigned_cat ac
    WHERE ac.category_id = c.category_id
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...