Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Эквивалентны ли запросы ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
select * from table1 t1
left outer join table2 t2 on (t1.field1 = t2.field2 and t1.field5=1  or t1.field3 = t2.field4 and t2.field6 = 4)

select * from table1 t1
left outer join table2 t2 on (t1.field1 = t2.field2  or t1.field3 = t2.field4 )
Where (t1.field1 = t2.field2 and t1.field5=1  or t1.field3 = t2.field4 and t2.field6 = 4)
13 дек 11, 19:10    [11759494]     Ответить | Цитировать Сообщить модератору
 Re: Эквивалентны ли запросы ?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
во втором кажись слова left outer лишние
13 дек 11, 19:14    [11759523]     Ответить | Цитировать Сообщить модератору
 Re: Эквивалентны ли запросы ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
как же мне изменить первый запрос, чтобы уйти от "join" совмещенным с "or" (ибо очень медленно)
13 дек 11, 19:18    [11759551]     Ответить | Цитировать Сообщить модератору
 Re: Эквивалентны ли запросы ?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
план надо смотреть, разбираться почему медленно... может индекс какой создать...
но тут я Вам не помощник, у меня у самого вечно с оптимизацией проблемы
13 дек 11, 19:19    [11759563]     Ответить | Цитировать Сообщить модератору
 Re: Эквивалентны ли запросы ?  [new]
Elena85
Member

Откуда:
Сообщений: 34
можно разделить на 2 запроса и объединить результат union all, если нет строк, подходящих под оба условия
13 дек 11, 19:23    [11759589]     Ответить | Цитировать Сообщить модератору
 Re: Эквивалентны ли запросы ?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
student-uni
как же мне изменить первый запрос, чтобы уйти от "join" совмещенным с "or" (ибо очень медленно)
select * from table1 t1
left join table2 t2 on t1.field1 = t2.field2 and t1.field5=1
union
select * from table1 t1
left join table2 t2 on t1.field3 = t2.field4 and t2.field6 = 4
13 дек 11, 19:24    [11759602]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить