Тормозит запрос...

Духовность™

Продвинутый новичок
Тормозит запрос...

Привет.

Ситуация такая: есть таблица firms (фирмы), в которой есть поле id_region - ID региона страны. У каждого администратора есть права на конкретный регион, т.е. есть таблица прав regions_rules, в ней соответственно поля id_region, id_admin, permission.

Собственно, задача выбрать все регионы для конкретного админа решается просто. Запросом типа

[sql]
...
firms.id_region = regions_rules.id_region
AND regions_rules.id_admin = id_amina
AND regions_rules.permission = 1
...
[/sql]

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

ну и получился собственно такой запрос:
[sql]
SELECT DISTINCT
firms . *
FROM firms, regions_rules
WHERE (
(
firms.id_region = regions_rules.id_region
AND
regions_rules.id_admin =1
AND
regions_rules.permission =1
)
)

OR

firms.in_towns =1

ORDER BY id_firm DESC LIMIT 1,10
[/sql]


этот запрос выполняется 3 секунды при 2000 записей. Это не тру. Что делать? Может как-то SQL изменить?
 
Сверху