1

クエリでこの問題が発生しました。クエリの目的は、aanweezigheidテーブルにいるかどうかに関係なく、すべての学生を表示することです。

これは私の質問です:

SELECT 
   s.studentNaam
   , s.studentAchterNaam
   , s.studentStamNummer
   , s.klasID
   , k.klasNaam
   , k.klasID
   , a.studentID
   , a.aanwezigTijdAan
   , a.aanwezigTijdAf
   , a.aanwezigDag
   , a.aanwezigStatus 

FROM studenten AS s 
   LEFT JOIN klassen AS k ON s.klasID=k.klasID 
   LEFT JOIN aanweezigheid AS a ON a.studentID=s.studentID
WHERE k.klasNaam = 'MD2a' 
   AND a.aanwezigDag='2012-08-28'
ORDER BY s.studentAchterNaam ASC

何か案は?

4

2 に答える 2

1

WHERE 条件をLEFT JOIN ON句に移動します。

SELECT ...
FROM studenten AS s
   LEFT JOIN klassen AS k
      ON s.klasID=k.klasID
         AND k.klasNaam = 'MD2a'
   LEFT JOIN aanweezigheid AS a
      ON a.studentID=s.studentID
         AND a.aanwezigDag='2012-08-28'
ORDER BY s.studentAchterNaam ASC;
于 2012-08-29T10:26:13.397 に答える
0

"a"依存関係をON用語に移動するだけです。そうすれば、あなたはあなたの中で何も除外することはありませんWHERE

SELECT 
   s.studentNaam
   , s.studentAchterNaam
   , s.studentStamNummer
   , s.klasID
   , k.klasNaam
   , k.klasID
   , a.studentID
   , a.aanwezigTijdAan
   , a.aanwezigTijdAf
   , a.aanwezigDag
   , a.aanwezigStatus 

FROM studenten AS s 
   LEFT JOIN klassen AS k ON s.klasID=k.klasID 
   LEFT JOIN aanweezigheid AS a ON a.studentID=s.studentID
              AND a.aanwezigDag='2012-08-28'
WHERE k.klasNaam = 'MD2a' 

ORDER BY s.studentAchterNaam ASC
于 2012-08-29T10:26:08.067 に答える