|
|
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
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 можно вносить любую фильтрацию, а не только связывание или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2002, 19:13:29 |
|
||
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
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. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2002, 23:38:33 |
|
||
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
кто знает, как в других СУБД можно ли под ON писать кроме условия связывания еще и дополнительные условия (фильтрацию) Ну не хочу я сносить всю фильтрацию всех связанных таблиц под WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2002, 10:40:29 |
|
||
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
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. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2002, 11:30:55 |
|
||
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
если бы я по примерам не глянул, так и не понял бы что к чему а смысл видимо следующий *ПРАВИЛЬНО* 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 - это не объяснение, а недомолвка. Даже переведенные на русский :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2002, 11:45:00 |
|
||
|
ошибка фильтрации в джойнах, глюк СУБД или мой?
|
|||
|---|---|---|---|
|
#18+
>но ведь ГДЕ ОБ ЭТОМ ГОВОРИТСЯ ЧЕЛОВЕЧЕСКИМ ЯЗЫКОМ? >цитаты из 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2002, 12:04:56 |
|
||
|
|

start [/forum/search_topic.php?author=oknuz&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
191ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 2023ms |
| total: | 2322ms |

| 0 / 0 |
