Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > выбрать lid, для которого есть записи с action=2


Автор: Alix36 18.8.2010, 09:42
Подскажите пожалуйста, как правильно составить запрос. 

есть таблица - table
в ней 2 поля: lid и action
Нужно выбрать все lid для которых в таблице есть запись с action = 2 и нет записи action = 3


Автор: skyboy 18.8.2010, 10:56
Код

select distinct t1.lid
from `table` as t1
left join `table` as t2
on t1.lid = t2.lid and t2.action =3
where t1.action = 2 and t2.action is null

или 
Код

select distinct lid
from `table`
where action = 2 and lid not in (select lid from `table` where action = 3)

или 
Код

select distinct t1.lid
from `table`as t1
where t1.action = 2 and not exists (select t2.lid from `table` as t2 wheret2.action = 3 and t2.lid = t1.lid)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)