Vorwort: Ich bin im Hotel und habe also meinen Nachtrunk schon genommen.
Matthias
Äh. Der mir aus diesem Forum bekannte Matthias Apsel?
Leider krieg ich das mit PHP nicht umgesetzt.
Hm. Wieso nicht?
1)
Hat Dein Benutzer keine Rechte um temporäre Tabellen anzulegen?
Hast Du nicht beachtet, dass es vier (4) Abfragen sind?
Erste:
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 ;
Zweite:
SELECT * FROM Mahnung; -- alle Schüler mit unerledigten Aufgaben
Dritte:
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
Vierte:
DROP TABLE Mahnung;
Die musst/solltest Du auch einzeln abschicken.
Jörg Reinholz