Om nah hoo pez nyeetz, alle!
Ich suche mit einer etwas komplexeren Abfrage bestimmte Schüler aus einer Klasse heraus, nämlich die, die noch unerledigte Aufgaben haben.
Ich suche jetzt alle Schüler dieser Klasse, die in dieser Abfrage nicht dabei sind, d.h. die bereits alle Aufgaben erledigt haben.
Wie stellt man sowas am geschicktesten an?
(MySQL PDO)
Im adminer ist dieses SQL zielführend.
CREATE TEMPORARY TABLE Mahnung ENGINE=INNODB
SELECT
Schüler.ID AS ID,
Name,
Vorname,
`Text`
FROM (
Kreuztabelle
INNER JOIN
Schüler
ON Kreuztabelle.SchülerID = Schüler.ID
)
INNER JOIN
Aufgaben
ON Kreuztabelle.AufgabenID = Aufgaben.ID
WHERE
Schüler.Klasse = 29 AND
Status = 'o' AND
Fälligkeit < '2014-03-09' AND
Erlass_k = 0 AND
Erlass_n = 0 ;
SELECT * FROM Mahnung; -- alle Schüler mit unerledigten Aufgaben
SELECT
Schüler.Name,
Schüler.Vorname
FROM Schüler
LEFT JOIN
Mahnung
ON Schüler.ID = Mahnung.ID
WHERE
ISNULL(Mahnung.ID) AND
Schüler.Klasse = 29; -- alle die, die in Mahnung nicht vorkommen
DROP TABLE Mahnung;
Leider krieg ich das mit PHP nicht umgesetzt.
Matthias