Поиогите с запросом. Плиз.

sakon

П..и.н..ок
Помогите с запросом. Плиз.

Мне наверное потом будет стыдно, но пока торможу.
Есть 2 таблицы:

akb_tech_prod

id_akb|id_tech
--------+---------
1 | 45
1 | 47
3 | 17
2 | 47
2 | 45
4 | 44

tech_mark

id_tech|mark_tech |name_tech
---------+-------------+-------------
45 | 103 | zik
46 | 2054 | zik
47 | 202 | kze
ну и т.д.

На входе есть id_akb и name_tech. Нужно выбрать те значения из tech_mark которые соответствуют name_tech и при этом в akb_tech_prod отсутствует id_tech при id_akb=4
 

baev

‹°°¬•
Команда форума
...WHERE tech_mark.id_tech NOT IN (SELECT id_tech FROM akb_tech_prod WHERE id_akb=4)
 

sakon

П..и.н..ок
Сенкс. Работает. (только не "tech_mark.id_tech" а "id_tech")

А без вложеных запросов никак?
 

baev

‹°°¬•
Команда форума
Проверять влом, но, похоже, можно как-то так:

Код:
SELECT * 
FROM akb_tech_prod
WHERE id_akb<>4
LEFT JOIN tech_mark
ON akb_tech_prod.id_tech = tech_mark.id_tech
AND tech_mark.name_tech = ЗНАЧЕНИЕ
 

sakon

П..и.н..ок
WHERE не там стоит.

Непрокатило. Дело в том, что этот запрос выбирает все значения "ЗНАЧЕНИЕ" но заковыка в том, что он нормально вытаскивает и id_tech который есть в id_akb=4, но записан как id_akb=5....
 
Сверху