Как правильно составить запрос к БД?

Имеется 2 таблицы - images_category и images_to_category.
SELECT * FROM images_category JOIN images_to_category ON images_category.id = images_to_category.id_category

Есть еще images_to_category.id_file, информацию о котором мне и требуется узнать.
SELECT * FROM images_category JOIN images_to_category ON images_category.id = images_to_category.id_category WHERE images_to_category.id_file = 15

Прекрасно выводит категорию, в которых этот файл состоит, но как сделать так, чтобы это работало в обратную сторону? Чтобы выводило наоборот категории, в которых этого файла нет вовсе?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
megafax
@megafax
web-программист
Как то так?
SELECT * 
FROM `images_category`
WHERE `id` NOT IN (
    SELECT `images_category`.`id` 
    FROM `images_category` 
    JOIN `images_to_category` ON (`images_category`.`id` = `images_to_category`.`id_category`) 
    WHERE `images_to_category`.`id_file` = 15 )
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Если я правильно понял задание, то как-то так
SELECT *
FROM images_category
Left Join images_to_category
ON images_category.id = images_to_category.id_category
AND images_to_category.id_file = 15
WHERE images_to_category.id_category is null
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы