SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.01.2013 14:01:56

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Выборка из нескольких таблиц

В очередной раз обращаюсь за помощью.

Уже несколько часов пробую и ищу, но без результата.

Ситуация такая: в блоге есть посты (таблица item) и категории (таблица cat). Один пост может принадлежать к нескольким категориям.
Взаимосвязь постов и категорий происходит через таблицу cat_dep

item
| id |      title        |
-------------------
| 1 |    item 1        |   
| 2 |    item 2        |   

cat
| id |      title        |
-------------------
| 1 |    categorie 1 |   
| 2 |    categorie 2 |
| 3 |    categorie 3 | 
| 4 |    categorie 4 |

cat_dep
| id | cat_id | item_id |
----------------------
| 1 |     1    |     1     |
| 2 |     2    |     1     |
| 3 |     1    |     2     |
| 4 |     2    |     2     |
| 5 |     3    |     2     |
| 6 |     4    |     2     |


Необходимо сделать запрос, чтобы на выходе была такая таблица:


| id |      title        |
-------------------
| 1 |    categorie 3 |   
| 2 |    categorie 4 |   

т.е. выбрать все категории, к которым НЕ принадлежит item 1

Следующий запрос не даёт необходимого результата:

SELECT DISTINCT
       cat.id,
       cat.title,
       FROМ cat
       LEFT JOIN cat_dep ON cat.id = cat_dep.cat_id
       WHERE cat_dep.item_id != 1


Выводятся все категории.

Заранее спасибо за помощь.
С уважением.

Неактивен

 

#2 14.01.2013 14:41:11

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из нескольких таблиц

Самый простой вариант: select * from cat WHERE id not in (select cat_id from cat_dep where item_id=1);


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 14.01.2013 15:29:52

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Выборка из нескольких таблиц

Спасибо.
Работает.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson