我有四个表,照片、事件、新闻、现场和照片是我要检查与其他表关系的记录的表。
照片具有以下结构:
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") ;
我需要在内部连接之间添加一些和/或逻辑,有点不知道怎么做。
如何获取与其他表仍然有完整关系的照片?