У меня есть запрос, который возвращает участников, их последний визит и их последний платеж.Моя проблема в том, что он не возвращает участников без посещения и / или оплаты.
Ранее я не включал последние посещения, а затем у меня был запрос с левым и правым соединениями вместо INNER, но когда я добавилтаблица посещений, которую я получил от справки, чтобы включить ее, но мы не заметили, что нам не хватало участников с нулевыми значениями при посещении или оплате.
Я безуспешно пытался применить левое и правое соединения.Я также попытался добавить, например.«ИЛИ (pt.member_id IS NULL)» также безуспешно.
SELECT
mr.member_id,
mr.name,
mr.tag,
pt.semester,
pt.date,
vt.date,
FROM
members mr
INNER JOIN
payment pt
ON
pt.member_id = mr.member_id
INNER JOIN
( SELECT
member_id,
MAX(payment_id) max_value
FROM
payment
GROUP BY
member_id ) pt2
ON
pt.member_id = pt2.member_id
AND
pt.payment_id = pt2.max_value
INNER JOIN
visit vt
ON
vt.member_id = mr.member_id
INNER JOIN
( SELECT
member_id,
MAX(date) max_visit_value
FROM
visit
GROUP BY
member_id ) vt2
ON
vt.member_id = vt2.member_id
AND
vt.date = vt2.max_visit_value
Я хочу получить результат, при котором посещение и / или оплата могут быть недействительными.
Надеюсь, что я понимаю, и кто-то может мне помочь:)
MySQL 5.6