Большой запрос помогите

mailmoney
Дата: 28.01.2009 14:23:29
Вот есть такой запрос:

select * from red_plan,widzan, predmet,pps,prep_profile,prep_man
where
xgruppa='1722' and
red_plan.wz=widzan.oid and
red_plan.predmet=predmet.oid
and red_plan.pps=pps.oid
and pps.prep=prep_profile.oid
and prep_profile.prep=prep_man.oid;

В таблице red_plan поле pps может быть пустым.
Мне нужно, чтобы этот запрос выдавал в том числе и пустые значения
"and red_plan.pps=pps.oid" - а это условие накладывает запрет на нулевые значение
Ken@t
Дата: 28.01.2009 14:24:38
IS NULL
angel_zar
Дата: 28.01.2009 14:24:51
Внешнее обединеие. OUTER JOIN
mailmoney
Дата: 28.01.2009 16:17:39
Дома попробовал вот так (рабочей базы нет)

select *
from table1
left join prepod on table1.asd = prepod.id_prepoda

Всё работает. Спасибо. А подскажите как "грамотнее" делать запросы с join или как я писал выше.
БД очень большая и запросы получаются очень большие.
Glory
Дата: 28.01.2009 16:21:26
mailmoney

Всё работает. Спасибо. А подскажите как "грамотнее" делать запросы с join или как я писал выше.
БД очень большая и запросы получаются очень большие.

Грамотнее всего делать запросы, которые возвращают нужный результат. А ваш первый запрос и запрос с left join возвращают разные результаты
mailmoney
Дата: 28.01.2009 16:23:41
Glory
Грамотнее всего делать запросы, которые возвращают нужный результат. А ваш первый запрос и запрос с left join возвращают разные результаты

Разные результаты (не было БД проверить первый рабочий вариант), смысл был просто один и тот же - пустые поля возращает во втором случае.
Glory
Дата: 28.01.2009 16:25:20
mailmoney
Glory
Грамотнее всего делать запросы, которые возвращают нужный результат. А ваш первый запрос и запрос с left join возвращают разные результаты

Разные результаты (не было БД проверить первый рабочий вариант), смысл был просто один и тот же - пустые поля возращает во втором случае.

Вам бы разобраться сначала с типами join-ов. Чтобы понимать, какой вообще результат вы можете получить