A pergunta provavelmente é estúpida, mas estou preso nisso e não consigo mais pensar (irritado).
Eu tenho essas tabelas->Employee (tem uma coluna externa para location),location e location_flag. E preciso selecionar funcionários relacionados a locais que tenham alguns sinalizadores específicos ativados (como fornecer feriados, fornecer assistência médica).
Suponha que um local (1) forneça assistência médica e feriados (tendo 'SIM' para location_flagS), então posso simplesmente verificar se eles são 'SIM'. Até agora tudo bem?
Aqui está a complicação:
O que fazer se o local não tiver rastreamento para alguns sinalizadores, então as junções falharão.
Minha consulta será:
select *
from employee
inner join location
on employee.locationId=location.id
inner join location_flag lf
on lf.locationId=location.id
inner join location_flag lf2
on lf2.location_id=location.id
where lf.value='YES' and lf.flag_id=1
and lf2.value='YES'and lf2.flag_id=2
Se um dos sinalizadores simplesmente não existir, o resultado será NULL.
O que eu quero é me passar os funcionários do local que se tiver bandeiras deve ser 'SIM'. Como posso fazer isso?
Tente isto: