У меня проблема с построением запроса
здесь упрощенная структура таблиц
3 стола
Event [Event_id , Event_name]
Event_files [Event_id(FK) , File_id(FK)]
Uploaded_Files[File_id , File_type, File_path]
у нас в основном 2 типа файлов
я пытаюсь собрать события вместе с их изображениями (если у них есть изображение)
я пытаюсь сделать это с помощью этого запроса
select e.id, e.name,uf.id as file_id,uf.path
from event e
left join event_file ef on ef.event_id = e.id
left join uploaded_file uf ON ef.file_id = uf.id
я знаю, что мне нужно применить условие, но каждый раз, когда я делаю в где или ВКЛ, всегда есть проблема с запросом
например, если я подам заявление:
left join uploaded_file uf ON ef.file_id = uf.id AND (uf.type = 2 )
он по-прежнему будет возвращать 2 записи для событий, которые имеют изображение, и подать одну из них с file_path null.
с другой стороны, если я сделаю следующее:
where (uf.id is null OR (uf.id is not null AND uf.type=2))
события, содержащие только файлы и изображения, больше не возвращаются
есть решение, пожалуйста?
заранее спасибо