
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.03.2003, 10:30
|
|||
|---|---|---|---|
|
|||
Как лучше сделать запрос |
|||
|
#18+
Есть две таблицы: 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) Скорость выполнения первого варианта почему-то гораздо лучшее, хотя по логике вещей должно быть наоборот. А может кто подскажет другой вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.03.2003, 10:56
|
|||
|---|---|---|---|
Как лучше сделать запрос |
|||
|
#18+
все правильно. если бы таблица "ШТАТ" была ОЧЕНь маленкой, тогда возможно второй вариант был бы выгоднее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.03.2003, 10:57
|
|||
|---|---|---|---|
|
|||
Как лучше сделать запрос |
|||
|
#18+
A tak proboval? select 1 from shtat, nadbav where id = id_shtat / ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&tablet=1&tid=1991382]: |
0ms |
get settings: |
5ms |
get forum list: |
23ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 334ms |

| 0 / 0 |
