[sql]select code_model from model where code_output=1 and code_type=3 and code_model not in (select distinct(code_model) from circle group by code_model having count(*)>=10 ) [/sql] select distinct(code_model) from circle group by code_model having count(*)>=10 результат выборки 4600 записей code_model not in (select distinct(code_model) from circle group by code_model having count(*)>=10 ) - делает нагрузку чем заменить? или как по другому составить запрос индекс на code_model в model и circle есть
попробуй [sql]select m.code_model from model m left join (select distinct(code_model) from circle group by code_model having count(*)>=10 ) a ON m.code_model=a.code_model where code_output in(1,3) and a.code_model is null[/sql] но вообще такой запрос можно и во временную таблицу пихать. зы. поля лучше называть m_code_model и c_code_model
мда, по вечерам я тоже туплю. [sql]select distinct(m.code_model) from model m left join circle c ON m.code_model=a.code_model where code_output in(1,3) group by m.code_model having count(a.id)<10 [/sql] вместо a.id подставишь что там у тебя. если все еще будет тормозить - надо будет собрать правильный составной индекс.
за идею спасибо! переделал запрос так [sql] select distinct(model.code_model) from circle, model left join circle ON model.code_model=circle.code_model where model.code_output=1 and model.code_type=3 group by circle.code_model as id having count(id)<10 limit 1 [/sql] работает, но логически не правильно реализовать надо [sql]and code_model not in (select distinct(code_model) from circle group by code_model having count(*)>=10 )[/sql] имено єта часть запроса тормозит
joost 1) перестань свинячить и пользуйся русской кодировкой. неприятно общаться. 2) объясни разницу в логике. ))