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

start [/forum/topic.php?fid=52&fpage=2799&tid=1991382]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 322ms |

| 0 / 0 |
