Запрос из трех таблиц. Отсутствие в одной из них

Romantik

TeaM PHPClub
Запрос из трех таблиц. Отсутствие в одной из них

Приветствую
Вот зашел в тупик и буду благодарен за помощь:
Есть три таблицы
Код:
product
id name
1  BCI-24 black
2  BCI-24 color
3  EPSON T038
4  EPSON T039
5  BCI 3eBk
--------------------
device
id name
1  CANON IP1000
2  EPSON C43
3  CANON IP2000
--------------------
belong
product_id device_id
1               1
1               3
3               2
4               2
т.е. для принтера EPSON C43(2) принадлежат 2 картриджа EPSON T038(3) и EPSON T039(4)
требуется вывести все product которых нет в belong для выбранного пользователем device
Пример:
1) device=1 ALL product, кроме product=1
2) device=2 ALL product, кроме product=3 and 4
3) device=3 ALL product, кроме product=1
пробую так:
[sql]
SELECT product.id
FROM product
LEFT JOIN belong ON belong.product_id = product.id
LEFT OUTER JOIN device ON belong.device_id = device.id
WHERE dvice.id =2 AND product.id IS NULL
[/sql]
 

ForJest

- свежая кровь
[sql]
SELECT product.id
FROM product
INNER JOIN belong ON belong.product_id = product.id
INNER JOIN device ON belong.device_id = device.id
WHERE device.id <> 2
[/sql]
 

Romantik

TeaM PHPClub
ForJest
А почему device.id <>2 ?
такой вариант тоже не работает, я просто пытался понять почему <> номеру принтера?
Ведь я ему назначил картриджи и мне нужен список оставшихся.
 

chira

Новичок
Код:
SELECT product.id
FROM product
LEFT JOIN belong ON belong.product_id = product.id AND belong.device_id = 2
WHERE belong.product_id IS NULL
 

Romantik

TeaM PHPClub
chira
Я всегда поражался твоему мастерству!
Высший пиотаж! =)
 
Сверху