Hallo!
Ich habe folgendes Problem:
Es handelt sich um eine MYSQL-Datenbank mit folgenden Tabellen (Meine eigentliche Datenbank ist sehr viel Komplexer, folgendes als Beispiel):
Tabelle: Kategorien
Felder: Name, ID
Tabelle: Artikel
Felder: Titel, ID, Inhalt, Kategorie
Wenn ich Alle Artikel haben möchte, die in einer Kategorie sind, verwende ich folgende Abfrage:
Code:
SELECT Artikel.*
FROM Artikel
INNER JOIN Kategorien (Kategorien.ID = Artikel.Kategorie)
Wenn nun ein neuer Artikel angelegt wird und keine Kategorie ausgewählt wird, ist der Wert für 'Kategorie' im jeweiligen Datensatz 0. Dadurch kann ich dann einfach abfragen, welche Artikel in keiner Kategorie sind:
Code:
SELECT * FROM Artikel WHERE Kategorie=0
Das Problem ist nur, dass es sein kann, dass eine Kategorie nachträglich gelöscht wird. Diejenigen Datensätze, die in der Kategorie enthalten waren werden nicht gelöscht und sind zukünftig keiner Kategorie zugeordnet!
Desshalb ist die 2. Abfrage nicht sinnvoll, da hier nur diejenigen Artikel ausgewählt wurden, die von Anfang an keiner Kategorie zugeordnet waren. Ich möchte aber ALLE Datensätze abfragen, die keiner Kategorie zugeordnet sind!
Wie funktioniert das?
sg, Fabian
PS: eigentlich geht es um eine sehr viel komplexere Abfrage, die um das oben beschriebene erweitert werden soll
Beispiel:
Code:
SELECT V.*
FROM veranstaltungen AS V
INNER JOIN termine AS T
ON (V.ID = T.veranstaltung)
WHERE T.ergt=0
AND V.p_kategorie=20
AND T.`erster_termin`>1141167600
AND T.`erster_termin`<1155679200
GROUP BY V.ID
ORDER BY T.`erster_termin`
Lesezeichen