Две таблица:
а) svn3
с колоннами name revno compname
б) archdetails
с колоннами name version compname inFlat
Почему выходные данные разные для этих 2-х sql-запросов?
В случае, если не эти 2 запросов выходные один и тот же результат. Результат запроса 2 правильный. Что не так с query1?
Query1:
select sum(CASE WHEN inFlat=1 THEN 1 ELSE 0 END) from archdetails inner join svn3 on archdetails.compname=svn3.compname where archdetails.name='ant' AND version='1.4' AND (revno='r274642' OR revno='r274578' OR revno='r274533')
Query2:
select sum(CASE WHEN inFlat=1 THEN 1 ELSE 0 END) from archdetails where name='ant' AND version='1.4' AND compname IN (select compname from svn3 where revno ='r274642' OR revno='r274578' OR revno='r274533')
Да, вы правы. Как я могу изменить запрос 1 для этого? Запрос Beacuse 2 слишком медленный даже после индексации – Gaurav
Пробовал ли вы использовать query2, но с использованием оператора 'exists' вместо условия 'in'? Как правило, это намного лучше с точки зрения производительности. –
Спасибо, попробуем использовать EXISTS. – Gaurav