が表示されない:クエリは、私はこのようなクエリを構築する必要があり、右の結果
SELECT
c.*,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NULL AND datum_verwijderd IS NULL AND studentid = '$studentid') as besteld,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NOT NULL AND datum_verwijderd IS NULL AND datum_afgehaald IS NULL AND studentid = '$studentid') as afhalen,
(SELECT datum_afhaling + INTERVAL 14 DAY FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NOT NULL AND datum_verwijderd IS NULL AND datum_afgehaald IS NULL AND studentid = '$studentid') as datum_afhaling,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afgehaald IS NOT NULL AND datum_verwijderd IS NULL AND cb.studentid = '$studentid') as afgehaald
FROM
cursusdienst c
LEFT JOIN
cursusdienst_bestellingen cb
ON
cb.cursus_id = c.id
WHERE
c.studierichting = '1ste Bachelor'
ORDER BY
c.artikel asc, cb.studentid
これは、学生やコースの登録/注文システムです。このシステムを使っている学生がたくさんいます。受講者はコースを受講する前に登録する必要があります。 私は同じリストのすべての生徒のコースを見るので、ここで質問に問題があります。ここでは例:
Checkbox Course Price Status
Checkbox Course 1 12.00 Ordered
Checkbox Course 1 12.00 Ordered
Checkbox Course 2 25.50 Ready to deliver
Checkbox Course 3 15.00
あなたがここで見ると、クエリは、彼らはログインしてコースを注文している(それは単なる一例である)私の2人の学生のすべてのコース情報を示しています。 最初の生徒は2エンコース1を注文し、私は学生としてログインした場合は第二の生徒のみがコース1 を命じた(私が注文したコースでのみ、私の状況を見てみたいが、私は、同様のコースの残りを見ますコース3のようなステータスなしで)私は同じ形式で他のコースを注文することができます。 見たいと思わないものは他人の注文です!
だから、私は今それを注文することができますので、1と2コース3は、リストでもあるコースを注文したが、私は前に注文していなかった(そう、それは何の地位を持っていない、これだけなら、私、学生などを見てみたいです):
Checkbox Course Price Status
Checkbox Course 1 12.00 Ordered
Checkbox Course 2 25.50 Ready to deliver
Checkbox Course 3 15.00
私は、私は私の注文したコースではなく、私が注文していなかったコースの残りを見るWHEREに「AND cb.studentid = 『$のstudentid』」を追加した場合。
編集:(感謝SunKnight0)は、 "AND cb.studentid = '$ studentid'をON部分に設定し、WHERE部分には設定しません!だから、作業のコードを以下に示します。
SELECT
c.*,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NULL AND datum_verwijderd IS NULL AND studentid = '$studentid') as besteld,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NOT NULL AND datum_verwijderd IS NULL AND datum_afgehaald IS NULL AND studentid = '$studentid') as afhalen,
(SELECT datum_afhaling + INTERVAL 14 DAY FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afhaling IS NOT NULL AND datum_verwijderd IS NULL AND datum_afgehaald IS NULL AND studentid = '$studentid') as datum_afhaling,
(SELECT COUNT(cursus_id) FROM cursusdienst_bestellingen where cursus_id = c.id AND datum_afgehaald IS NOT NULL AND datum_verwijderd IS NULL AND cb.studentid = '$studentid') as afgehaald
FROM
cursusdienst c
LEFT JOIN
cursusdienst_bestellingen cb
ON
cb.cursus_id = c.id AND cb.student_id = '$studentid'
WHERE
c.studierichting = '1ste Bachelor'
ORDER BY
c.artikel asc, cb.studentid
は、あなたが得ているものの例の結果を与えることができますし、何を得ることを期待しますか? – SunKnight0
私はあなたのために私の質問を編集しました! – Brecht27
クエリ結果にbested、afhalen、datum_afhaling、afgehaaldという3つのフィールドがあります。そのうちの3つは整数で、1つは日付でなければなりません。あなたの結果の例と一致するものはありません。 – SunKnight0