Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как лучше сделать запрос / 4 сообщений из 4, страница 1 из 1
21.03.2003, 10:30
    #32124380
BRO-m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать запрос
Есть две таблицы: SHTAT (ID,fio,...) и NADBAV (ID,ID_SHTAT,SUMMA), NADBAV.ID_SHTAT - ссылка на SHTAT.ID. Т.е. в SHTAT хранятся штатные единицы, а в NADBAV - надбrf и id единицы в SHTAT.

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

Я пробовал два варианта:
1.
select s.fio
from shtat s
where s.id in (select n.id_shtat from nadbav n )

2.
select s.fio
from shtat s
where exists (select n.id from nadbav n where n.id_shtat = s.id)

Скорость выполнения первого варианта почему-то гораздо лучшее, хотя по логике вещей должно быть наоборот. А может кто подскажет другой вариант?
...
Рейтинг: 0 / 0
21.03.2003, 10:56
    #32124410
MaxU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать запрос
все правильно. если бы таблица "ШТАТ" была ОЧЕНь маленкой, тогда возможно второй вариант был бы выгоднее...
...
Рейтинг: 0 / 0
21.03.2003, 10:57
    #32124412
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать запрос
A tak proboval?


select 1
from shtat, nadbav
where id = id_shtat
/
...
Рейтинг: 0 / 0
21.03.2003, 10:59
    #32124414
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать запрос
Oshibsja, nje "select 1" a "select fio"

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


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