Фильтрация до Join-а
От: Creep  
Дата: 08.08.03 07:17
Оценка:
Привет.

Наверняка кто-то уже сталкивался с проблемой: как сделать фильтрацию до JOIN-а.

Поясню на примере

есть таблица1:

id (PK) text
 1      value
 2      meanung
 3      word


есть таблица 2
id (FK) param (int)
 1      10
 3      30


что недо сделать: отфильтровать по значению param в таблице 2 (скажем, <25) и сделать outer join на таблицу 2, т.е. хочу получить такой результат:
1     value     10
2     meaning   (null)


Казалось бы, что проще:

Select table1.id, table1.text, table2.param
From table1 left outer join table2 on table1.id = table2.id
Where table2.param < 25


но в результате получается
1     value     10


Причина в том, что выражение Where table2.param < 25 работает после того, как происходи join, и отсеивает строку 2 meaning (null). Как бы это побороть? Сразу хочу предупредить, что вводить какие-то служебные значения в таблицу 2 нежелательно, ввиду того, что по колонке param много условий, и подобрать такое служебное значение, которое завсегда бы попадало во все условия невозможно.
Интересует реализация не для конкретной платформы, а "вообще"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.