Mailinglisten-Archive |
Hallo Liste, ja, richtig gelesen: innerhalb einer Tabelle. Tabelle "table" enthält drei Spalten: ID | parent_ID | node_ID ------------------------------------------------ 123 | | 456 | 123 | 123 789 | 456 | 123 abc | | def | abc | abc ghi | def | abc jkl | 789 | 123 die Tabelle enthält also einen Baum. Jetz gibt es 'broken' branches, wenn ein node oder parent gelöscht wird. Meine Query bringt halt nur alle Records raus, die einen entsprechenden node oder Parent haben: SELECT table_b.ID as b_ID, table_a.ID as a_ID, table_a.parent_ID as a_parent, table_a.node_ID as a_node FROM table AS table_a LEFT OUTER JOIN table AS table_b ON (table_a.parent_ID=table_b.ID OR table_a.node_ID=table_b.ID) wenn ich jetzt meine Bedingung formuliere bekomme ich natürlich nix mehr zurück: WHERE ISNULL(table_b.ID) AND NOT ISNULL(table_a.parent_ID) OR NOT ISNULL(table_a.node_ID) Im Manual finde ich nichts zum Thema JOINs in der selben Tabelle - ausserdem habe ich den Eindruck, dass ich irgendwas ganz und garnicht verstanden habe. Dies Query hier habe ich nach Kofler zusammengebaut, sie sieht aber schon für einen Anfänger wie mich nicht so aus, als könnte da was sinnvolles zurückkommen. Also: was ich brauche, sind die Records mit parent_ID oder node_ID, die keinen korrespondierenden Record mit ID finden (ich habe auch die Tabellenreihenfolge schon verdreht...). Wie geht's? Danke an alle Antworter, Christoph Siefer -- sym.net - martin butz & christoph siefer gbr zwirnerstrasse 26 - 50678 koeln - 0221/3762591 email: siefer_(at)_sym.net - netz: http://www.sym.net --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive