您不能有条件地在表之间创建联接。最好的方法是在陈述中使用
LEFT JOIN和使用您。您必须指定要显示的通用列,
CASE``SELECt
SELECT *, (CASE notification_base.type WHEN 'photo' THEN photo.columnName1 ELSE post.ColumnName1 END) as ColumnName1, (CASE notification_base.type WHEN 'photo' THEN photo.columnName2 ELSE post.ColumnName2 END) as ColumnName2FROM notification_action INNER JOIN notification_base ON notification_action.not_base_id = notification_base.id INNER JOIN notification_sub ON notification_action.not_base_id = notification_sub.not_base_id INNER JOIN photo ON photo.id = notification_base.object_id INNER JOIN post ON post.id = notification_base.object_idWHERe notification_sub.user_id = 3 AND notification_sub.lastShowDate < notification_action.creationDate;



