このようなmysqlクエリがあります
SELECT s.admission_number, s.student_name, c.class, m.month,
f.fee, fr23.amount_received
FROM students s
LEFT JOIN fee_receipts fr ON s.id = fr.admission_number
LEFT JOIN fee_receipts_23_repeat fr23 ON fr.id = fr23.parent_id
JOIN class c ON s.class = c.id
LEFT JOIN fee f ON f.id = fr23.fee
LEFT JOIN months m ON m.id = fr23.month
このような結果を示すのはどれですか?
ad_num student_name class month fee amount_received
779 A Jain Nur January Tuition Fee 575.00
808 A Gupta Nur January Tuition Fee 0.00
821 A Mohanty Nur NULL NULL NULL
818 ATiwari Nur FebruaryTuition Fee 575.00
826 D Mishra Nur NULL NULL NULL
813 G Kaur Nur NULL NULL NULL NULL
809 P Palai Nur NULL NULL NULL
822 S Agrawal KG1 December Tuition Fee 575.00
773 S Garg KG1 NULL NULL NULL
現在、料金を支払っていない学生のリストをクラスごとに取得しようとしていますが、正しい結果が得られません。上記のクエリに追加している条件は次のようなものです
where fr23.amount_received is NULL and c.class = 'Nur' and m.month != 'January'
1 月分の支払いを済ませていないすべての学生が一覧表示される結果を期待していますが、空の結果セットが返されます。
実際には、支払いのエントリが作成されていない学生を見つけようとしています。つまり、列の月、料金、および金額_受信には null 値が含まれます。
正しいアプローチを取っているかどうかはよくわかりません。