在mysql中选择更具体的查询

问题描述 投票:0回答:1

这是我当前的查询(不介意长选择表)

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,因此他们不会出现结果。

有办法解决这个问题吗?

sql mysql mysqli
1个回答
0
投票

我刚刚找到了我自己问题的答案,我只是翻转 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
© www.soinside.com 2019 - 2024. All rights reserved.