Hallo,
ich habe 3 Tabellen, diese Abfrage
in der Tabelle kommentare sind die kommentare für die Tabellen anzeige und ereignis
zur Zeit hat nur die Tabelle ereignis nur Inhalt, die Tabelle anzeige ist noch leer
bei kommentare._art steht deshalb auch überall "ereignis" drin
ich bekomme aber kein Datensatz ausgespuckt :-(
wenn ich jetzt in der Tabelle "anzeige" ein Datensatz anlege (es ist egal, ob der Datensatz als gelöscht oder als nicht freigeschaltet markiert), dann bekomme ich auf einmal 10 Datensätze zurück
warum ist das so?
wie bekomme ich es hin, dass ich auch ein Ergebnis bekomme, wenn die andere Tabelle leer ist?
hier der SQL Befehl
SELECT DISTINCT kommentare._id, kommentare._parent_id, kommentare._art, kommentare._name
FROM kommentare, ereignis, anzeige
WHERE kommentare._freigeschaltet = "1"
AND kommentare._geloescht = "0"
AND
(
(
kommentare._art = "ereignis"
AND ereignis._id = kommentare._parent_id
AND ereignis._geloescht = "0"
AND ereignis._freigeschaltet = "1"
)
OR
(
kommentare._art = "anzeige"
AND anzeige._id = kommentare._parent_id
AND anzeige._geloescht = "0"
AND anzeige._freigeschaltet = "1"
)
)
ORDER BY kommentare._id DESC
LIMIT 10
_geloescht und _freigeschaltet sind enum Felder enum('0','1')
_geloescht = "0" <--- nicht gelöscht
_freigeschaltet = "1" <--- freigeschaltet
mfg
Twilo