У меня есть четыре стола, фото, событие, новости, пятно и фотография - это таблица, в которой я хочу проверить записи с отношениями к другим таблицам.Фильтрация одной таблицы с несколькими внутренними соединениями с другими таблицами
фотография имеет следующий sructure:
кроме фотоid
rel_model -> one of "news", "spot" and "event"
rel_id -> id of the related record in rel_model table
...
Таблицы постоянно обновляются и некоторые из записей ара удалены. Я хочу отфильтровать фотографии, чтобы получить записи, связанные с существующими записями в других таблицах.
Я попробовал следующее
select
count(*)
from
Photo
inner join Event ON (rel_id = Event.id and rel_model="event")
inner join News ON (rel_id = News.id and rel_model="news")
inner join Spot ON (rel_id = Spot.id and rel_model="spot");
но я получаю 0 результаты, где пытаются это лишь один внутреннее объединение работ для проверки против одной таблицы
select
count(*)
from
Photo
inner join Event ON (rel_id = Event.id and rel_model="event") ;
мне нужно добавить некоторые и-или логику между внутренними соединениями, бит не мог понять, как это сделать.
Как я могу получить фотографии, которые по-прежнему имеют неразрывные отношения с другими таблицами?