Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=7446720&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 16:09:14 2016
Кодировка: Windows-1251
Вопрос про SQL запрос - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | показать все | след. страница
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Вопрос про SQL запрос
      23.04.2008 15:39
 

Как сделать проще?

имеется

create table t1
(
DT datetime,
IV numeric(18,6)
)

create table t2
(
DT datetime,
IV numeric(18,6)
)

insert into t1 values ('2008-06-11 12:31:00', 1)
insert into t1 values ('2008-06-11 12:33:00', 3)
insert into t1 values ('2008-06-11 12:35:00', 5)
insert into t1 values ('2008-06-11 12:37:00', 7)

insert into t2 values ('2008-06-11 12:30:00', 0)
insert into t2 values ('2008-06-11 12:32:00', 2)
insert into t2 values ('2008-06-11 12:34:00', 4)
insert into t2 values ('2008-06-11 12:36:00', 6)

запрос в лоб
select b.*, t1.IV, t2.IV from
(
select DT from t1
union
select DT from t2
) b
left join t1 on t1.DT=b.DT
left join t2 on t2.DT=b.DT

резалтсет

2008-06-11 12:30:00.000 NULL 0.000000
2008-06-11 12:31:00.000 1.000000 NULL
2008-06-11 12:32:00.000 NULL 2.000000
2008-06-11 12:33:00.000 3.000000 NULL
2008-06-11 12:34:00.000 NULL 4.000000
2008-06-11 12:35:00.000 5.000000 NULL
2008-06-11 12:36:00.000 NULL 6.000000
2008-06-11 12:37:00.000 7.000000 NULL

проще как сделать?






Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:00
2

Задачу сформулируй. Даты в разных таблицах могут совпадать?

select DT,IV,null from t1
union all
select DT,null,IV from t2





Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Re: Вопрос про SQL запрос [re: Storm]
      23.04.2008 16:04
1

задача получить такой резалтсет как я указал, все данные могут быть любыми

совпадать могут

Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:07
1

Короче, вот тебе второй вариант. Какой из них подойдет зависит от задачи.

select DT,t1.IV,t2.IV from t1
outer join t2 using(DT)




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Re: Вопрос про SQL запрос [re: Storm]
      23.04.2008 16:09
-1

нет не работает

insert into t2 values ('2008-06-11 12:37:00', 17)

17 и 7 не объединяет



Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Storm]
      23.04.2008 16:09
 

Опиши поведение в случае наличия совпадающих/повторяющихся дат.





Редактировал Storm (23.04.2008 16:12)

Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Re: Вопрос про SQL запрос [re: Storm]
      23.04.2008 16:12
 

вот вслучае совпадения дат, что должно быть

2008-06-11 12:30:00.000 NULL 0.000000
2008-06-11 12:31:00.000 1.000000 NULL
2008-06-11 12:32:00.000 NULL 2.000000
2008-06-11 12:33:00.000 3.000000 NULL
2008-06-11 12:34:00.000 NULL 4.000000
2008-06-11 12:35:00.000 5.000000 NULL
2008-06-11 12:36:00.000 NULL 6.000000
2008-06-11 12:37:00.000 7.000000 17.000000

Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:15
1

А если в одной таблице будут две одинаковые даты?




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Re: Вопрос про SQL запрос [re: Storm]
      23.04.2008 16:16
 

2008-06-11 12:37:00.000 7.000000 17.000000

Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:17
 

А если добавить
insert into t2 values ('2008-06-11 12:37:00', 17)
insert into t2 values ('2008-06-11 12:37:00', 19)
?




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
Strelochka
blue beard

Рег.: 04.09.2004
Сообщений: 1716
Рейтинг: 563
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:21
 

не один к одному в одно время одно значение в каждой таблице

двух значений быть не может

Storm
:)

Рег.: 09.09.2004
Сообщений: 3301
Из: hane.ru
Рейтинг: 132
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 16:23
3

Тогда outer join подойдет.




Ecchi nano wa ikenai to omoimasu!
==Media.Anime==
nafig_batat
looking for you

Рег.: 25.10.2005
Сообщений: 11580
Из: улица Ленина
Рейтинг: 8535
  Re: Вопрос про SQL запрос [re: Strelochka]
      23.04.2008 20:03
5

вот ведь пиздец. взять простейший справочник по скулю не судьба, а ебать всем мозг - это пожалуйста



слава роботам!!!
penartur2

Рег.: 16.06.2005
Сообщений: 54495
Рейтинг: 429
  Re: Вопрос про SQL запрос [re: Strelochka]
      24.04.2008 00:30
-3

Юнионы - зло, если в них нет реальной необходимости (а такой практически никогда нет), то за их использование надо отрывать руки.



Я ушел на новый форум.
Там правовое государство. А еще можно удобно листать аплоад ;)
botWi

Рег.: 22.11.2003
Сообщений: 10160
Из: Moscow
Рейтинг: 1764
  Re: Вопрос про SQL запрос [re: penartur2]
      24.04.2008 00:46
3

В ответ на:

Юнионы - зло, если в них нет реальной необходимости (а такой практически никогда нет), то за их использование надо отрывать руки.




а где же твой вариант решения данной задачи без юнионов? ;)



Хватит дрочить на рейтинги
Robinzon
Дракоша

Рег.: 28.09.2003
Сообщений: 5510
Рейтинг: 2851
  Re: Вопрос про SQL запрос [re: penartur2]
      24.04.2008 00:48
-1

На огромных таблицах спорно.
Объединить два мгновенно работающих запроса - хуже чем городить нетривиальные всеохватывающие условия.



penartur2

Рег.: 16.06.2005
Сообщений: 54495
Рейтинг: 429
  Re: Вопрос про SQL запрос [re: botWi]
      24.04.2008 00:51
 

В ответ на:

а где же твой вариант решения данной задачи без юнионов?



А где же "данная задача"?
Я в этом треде никакой задачи не увидел, задача скрыта, а здесь автор треда пытается узнать, как именно реализовать один из вариантов решения задачи (судя по всему - неправильный).



Я ушел на новый форум.
Там правовое государство. А еще можно удобно листать аплоад ;)
penartur2

Рег.: 16.06.2005
Сообщений: 54495
Рейтинг: 429
  Re: Вопрос про SQL запрос [re: Robinzon]
      24.04.2008 00:54
 

В ответ на:

Объединить два мгновенно работающих запроса - хуже чем городить нетривиальные всеохватывающие условия.



Ряды разных таблиц - разные сущности, как их можно объединять?
Единственная задача, в которой я могу предположить использование юнионов - это что-нибудь вроде страницы со списком, например, списаний и зачислений. Но и там юнионы необязательны - страница с таким общим списком может понадобиться только за какой-то определенный срок (например, со вчерашней полуночи до текущего момента), и можно тупо взять отдельно нужные ряды из одной таблицы, из другой, после чео объединять их уже перед выводом пользователя, удобные фишки юниона вроде LIMIT тут нахуй не нужны.



Я ушел на новый форум.
Там правовое государство. А еще можно удобно листать аплоад ;)
Robinzon
Дракоша

Рег.: 28.09.2003
Сообщений: 5510
Рейтинг: 2851
  Re: Вопрос про SQL запрос [re: penartur2]
      24.04.2008 01:02
1

Иногда интерфейсы вывода информации пользователю (grid, ekRTF, Excel) не позволяют тебе совершать операции Union или Minus и их приходится осуществлять силами сервера БД.
В ответ на:

тупо взять отдельно нужные ряды из одной таблицы, из другой, после чео объединять их уже перед выводом пользователя






penartur2

Рег.: 16.06.2005
Сообщений: 54495
Рейтинг: 429
  Re: Вопрос про SQL запрос [re: Robinzon]
      24.04.2008 01:05
-1

А что же у тебя находится между БД и экселем, магия?



Я ушел на новый форум.
Там правовое государство. А еще можно удобно листать аплоад ;)
Страницы: 0 | 20 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в