这是我当前的查询(不介意长选择表)
SELECT user.id,
nawafil.date, nawafil.tahajjud, nawafil.rakaat_tahajjud, nawafil.witir, nawafil.qo_subuh,
nawafil.qo_dzuhur, nawafil.ba_dzuhur, nawafil.ba_maghrib, nawafil.ba_isya,
nawafil.dzikir_pagi, nawafil.dzikir_sore, nawafil.dzikir_malam, nawafil.quran,
nawafil.infaq, nawafil.dhuha, nawafil.dakwah, nawafil.ket_dakwah
FROM nawafil
JOIN user ON nawafil.id_user = user.id
JOIN halaqah ON halaqah.id = user.halaqah_id
WHERE user.halaqah_id = 1 AND nawafil.date = '2023-10-7'
我想选择具有相同halaqah的所有用户表和nawafil,在本例中halaqah_id = 1和特定日期。但有些用户没有特定日期的 nawafil,因此他们不会出现结果。
有办法解决这个问题吗?
我刚刚找到了我自己问题的答案,我只是翻转 JOIN 并替换为 LEFT JOIN 并在 LEFT JOIN 之后移动 WHERE 日期
FROM user
LEFT JOIN nawafil
ON nawafil.id_user = user.id AND nawafil.date = '2023-10-6'
JOIN halaqah
ON halaqah.id = user.halaqah_id
WHERE user.halaqah_id = 1