powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ошибка фильтрации в джойнах, глюк СУБД или мой?
6 сообщений из 6, страница 1 из 1
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031755
olden69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
declare @period datetime
set @period = '020301'

select a.fscore_ptr, d.shut_month
from actstate a
right outer join decisionactstate d
on (d.shut_month=@period and d.actstate_ptr=a.ptr)

так вот, фильтр d.shut_month=@period не срабатывает
странно
вроде бы под ON можно вносить любую фильтрацию, а не только связывание
или я ошибаюсь?
...
Рейтинг: 0 / 0
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031768
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL - Accessing and Changing Relational Data - Query Fundamentals - Join Fundamentals - Using Joins - Using Outer Joins


"The SQL-92 right outer join operator, RIGHT OUTER JOIN, indicates _all_rows_in_the_second_table_are_to_be_included in_the_results_, regardless of whether there is matching data in the first table.
"
...
Рейтинг: 0 / 0
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031781
olden69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто знает, как в других СУБД
можно ли под ON писать кроме условия связывания еще и дополнительные условия (фильтрацию)
Ну не хочу я сносить всю фильтрацию всех связанных таблиц под WHERE.
...
Рейтинг: 0 / 0
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031787
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL - Accessing and Changing Relational Data - Query Fundamentals - Join Fundamentals

"Joins indicate how Microsoft® SQL Server™ 2000 should use data from one table to select the rows in_another_table.

Joins can be specified in either the FROM or WHERE clauses.

The join conditions combine with the WHERE and HAVING search conditions to _control_the_rows_that_are_selected_from_the_base_tables referenced in the FROM clause.
"
...
Рейтинг: 0 / 0
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031788
olden69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если бы я по примерам не глянул, так и не понял бы что к чему
а смысл видимо следующий

*ПРАВИЛЬНО*
select T1.*, T2.*
from TABLE1 T1 left join TABLE2 T2
on T1.F1=T2.F1 and T2.F2=5

*НЕПРАВИЛЬНО*
select T1.*, T2.*
from TABLE1 T1 left join TABLE2 T2
on T1.F1=T2.F1 and T1.F2=5

т.е. под LEFT OUTER JOIN ... ON можно фильтровать только правую таблицу, а для фильтрации левой используем WHERE
для RIGHT OUTER JOIN все наоборот

но ведь ГДЕ ОБ ЭТОМ ГОВОРИТСЯ ЧЕЛОВЕЧЕСКИМ ЯЗЫКОМ?
цитаты из BOL - это не объяснение, а недомолвка. Даже переведенные на русский :)
...
Рейтинг: 0 / 0
ошибка фильтрации в джойнах, глюк СУБД или мой?
    #32031794
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>но ведь ГДЕ ОБ ЭТОМ ГОВОРИТСЯ ЧЕЛОВЕЧЕСКИМ ЯЗЫКОМ?
>цитаты из BOL - это не объяснение, а недомолвка.
>Даже переведенные на русский :)

Я не вижу эдесь никаких недомолвок
"Joins indicate how Microsoft® SQL Server™ 2000 should use data from one table to select the rows in_another_table. "

Joins показывает каким образом Microsoft® SQL Server™ 2000 может использовать данные одной таблицы для выбора строк _из другой таблицы_

А использовав right outer join, вы сами определили, что decisionactstate - это base table, а actstate - another table
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ошибка фильтрации в джойнах, глюк СУБД или мой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]