我有这个查询:
SELECT
e.*, u.name AS event_creator_name
FROM `edu_events` e
LEFT JOIN `edu_users` u
ON u.user_id = e.event_creator
INNER JOIN `edu_event_participants`
ON participant_event = e.event_id && participant_user = 1
WHERE
MONTH(e.event_date_start) = 6
AND YEAR(e.event_date_start) = 2013
它工作得很好,但是,如果值:e.event_type 等于 1,我只想执行 INNER JOIN。如果不是,它应该忽略 INNER JOIN。
我已经尝试了一段时间来弄清楚,但解决方案似乎很难实现我的提议(因为它仅适用于选择/特定值)。
我正在考虑类似的事情:
SELECT
e.*, u.name AS event_creator_name
FROM `edu_events` e
LEFT JOIN `edu_users` u ON u.user_id = e.event_creator
if(e.event_type == 1) {
INNER JOIN `edu_event_participants` ON participant_event = e.event_id && participant_user = 1
}
WHERE MONTH(e.event_date_start) = 6
AND YEAR(e.event_date_start) = 2013