Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Какой запрос предпочтительней? / 17 сообщений из 17, страница 1 из 1
28.02.2011, 11:27
    #37139131
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Есть две таблицы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE A ( 
      ID Integer NOT NULL, 
      SA Integer, 
      CONSTRAINT PK_A PRIMARY KEY (ID) 
) 
CREATE TABLE B ( 
      ID Integer NOT NULL, 
      SB Integer, 
      CONSTRAINT PK_B PRIMARY KEY (ID) 
) 
какой запрос предпочтительней?
1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select ID, sum(SA) as SA, sum(SB) as SB 
from 
(select ID,SA, 0  as SB 
from A 
union all 
select ID, 0 ,SB 
from B) 
group by ID  

2.
Код: plaintext
1.
2.
3.
select COALESCE(A.ID,B.ID) as ID, COALESCE(A.SA, 0 ) as SA, COALESCE(B.SB, 0 ) as SB 
from A 
full join B 
on (A.ID=B.ID)

С уважением, Naf
...
Рейтинг: 0 / 0
28.02.2011, 11:54
    #37139224
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
On 28.02.2011 11:27, Naf wrote:

> какой запрос предпочтительней?
> 1.
>
> select ID,sum(SA)as SA,sum(SB)as SB
> from
> (select ID,SA,*0* as SB
> from A
> union all
> select ID,*0*,SB
> from B)
> group by ID
>
>
> 2.
>
> select COALESCE(A.ID,B.ID)as ID,COALESCE(A.SA,*0*)as SA,COALESCE(B.SB,*0*)as SB
> from A
> full join B
> on (A.ID=B.ID)


Как бы семантика запросов разная (они разные данные выдают). Вам решать, какая
вам нужна.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.02.2011, 12:29
    #37139314
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
MasterZivКак бы семантика запросов разная (они разные данные выдают). Вам решать, какая
вам нужна.

выдают они стабильно одинаковые данные при такой структуре таблиц
...
Рейтинг: 0 / 0
28.02.2011, 12:36
    #37139334
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
NafMasterZivКак бы семантика запросов разная (они разные данные выдают). Вам решать, какая
вам нужна.

выдают они стабильно одинаковые данные при такой структуре таблицтаких данных в таблицахВам решать, какой запрос вам нужен.
...
Рейтинг: 0 / 0
28.02.2011, 12:46
    #37139357
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
tanglirNafпропущено...

выдают они стабильно одинаковые данные при такой структуре таблицтаких данных в таблицахВам решать, какой запрос вам нужен.не могут они давать разные результаты! даже теоретически
...
Рейтинг: 0 / 0
28.02.2011, 12:47
    #37139358
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
NafMasterZivКак бы семантика запросов разная (они разные данные выдают). Вам решать, какая
вам нужна.

выдают они стабильно одинаковые данные при такой структуре таблиц

Два разных запроса при каких-то условиях могут выдавать одинаковые данные.
Но это не значит, что эти два запроса идентичны.
...
Рейтинг: 0 / 0
28.02.2011, 12:49
    #37139366
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
MasterZivNafпропущено...

выдают они стабильно одинаковые данные при такой структуре таблиц

Два разных запроса при каких-то условиях могут выдавать одинаковые данные.
Но это не значит, что эти два запроса идентичны.вот при данных структурах таблиц они будут давать одинаковые результаты (порядок строк здесь не в счет)
...
Рейтинг: 0 / 0
28.02.2011, 13:22
    #37139433
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Nafвот при данных структурах таблиц они будут давать одинаковые результаты (порядок строк здесь не в счет)Вообще-то да (я просмотрел примариключ в структуре). Но тогда это сферический вопрос в вакууме. Пока не будет указана хотя бы СУБД.
А чисто фсерический ответ - второй вариант, т.к. в первом практически наверняка нужно делать временную таблицу, да ещё и наполнять её "левыми" данными (нулями).
...
Рейтинг: 0 / 0
28.02.2011, 13:43
    #37139493
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Да, хотелось бы знать что за БД.
Поддерживаю мнение, что запросы разные. Не то, что по разному записаны, а что разный смысл имеют.
...
Рейтинг: 0 / 0
28.02.2011, 13:50
    #37139513
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
ShSergeДа, хотелось бы знать что за БД.
Поддерживаю мнение, что запросы разные. Не то, что по разному записаны, а что разный смысл имеют.Разные. Но именно на этой структуре они будут выдавать один и тот же результат. Или нет?
...
Рейтинг: 0 / 0
28.02.2011, 13:55
    #37139524
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
вопрос чисто сферически вакуумный, просто размышления пришли после запроса из 1С к MS SQL Server
кстати, на MS SQL Server разница оказалась не колоссальной (а может данные такие)
на Firebird с другими данными разница была просто колоссальной
...
Рейтинг: 0 / 0
28.02.2011, 14:00
    #37139543
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Запросы выдают одинаковые значения при уникальности ID в рамках таблиц.

Какой быстрее - трудно сказать, лучше смотреть план и пробовать на больших таблицах.

Хотя, полагаю, full join будет побыстрее
...
Рейтинг: 0 / 0
28.02.2011, 14:21
    #37139608
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Яростный МечХотя, полагаю, full join будет побыстрее
Практика показала обратное
...
Рейтинг: 0 / 0
28.02.2011, 15:47
    #37139821
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
On 28.02.2011 13:50, tanglir wrote:

> Разные. Но именно на этой структуре они будут выдавать один и тот же результат.
> Или нет?

А какая разница, будут они выдавать разное, или одно и то же, на ЭТИХ КОНКРЕТНЫХ
данных ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.02.2011, 16:04
    #37139870
guy_zol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Naftanglirпропущено...
не могут они давать разные результаты! даже теоретически

Очень даже могут. представьте себе что и в первой таблице всего одна запись
id=1 Sa=2
и во второй тоже
id=1 sb=3
тогда первый запрос вернет две строки, а второй - одну.
...
Рейтинг: 0 / 0
28.02.2011, 16:42
    #37139996
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
guy_zolОчень даже могут. представьте себе что и в первой таблице всего одна запись
id=1 Sa=2
и во второй тоже
id=1 sb=3
тогда первый запрос вернет две строки, а второй - одну.
оба вернут одну, читайте внимательно запросы
...
Рейтинг: 0 / 0
28.02.2011, 16:45
    #37140010
guy_zol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой запрос предпочтительней?
Naf,

виноват, группировку зевнул.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Какой запрос предпочтительней? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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