Mailinglisten-Archive |
On 10.03.2009 11:08, Stephan Krauß wrote: > Hallo ! > > Ich plage mich mit folgender SQL. > Ich habe eine Tabelle in der die Knoten eines Tree > dargestellt sind. Ich rufe alle Datensätz der Tabelle ab > und will zusätzlich mit der IF - Weisung ermitteln ob der > Datensatz 'Kinder' hat. Leider komme ich nicht weiter. > > > select id, parent, child, if( (select count(parent) from parent_child > where child = parent), 'Knoten', 'Blatt' ) as knoten from parent_child > order by parent MySQL weiß doch hier gar nicht welche Felder aus welcher Tabelle kommen sollen, das musst du schon mit angeben SELECT `parent_child`.`id`, `parent_child`.`parent`, `parent_child`.`child`, IF(( SELECT COUNT(`child`.`child`) FROM `parent_child` AS `child` WHERE `child`.`parent` = `parent_child`.`child`), 'Knoten', 'Blatt') AS `knoten ` FROM `parent_child` ORDER BY `parent_child`.`parent` irgendwie so ähnlich ... aber du solltest das lieber mit einem JOIN lösen, und anstelle von 'Knoten'/'Blatt' einfach die Kinder-Anzahl zurückgeben lassen. SELECT `parent_child`.* COUNT(`child`.`child`) AS `childs` FROM `parent_child` LEFT JOIN `parent_child` AS `child` ON `child`.`parent` = `parent_child`.`child` GROUP BY `parent_child`.`id` ORDER BY `parent_child`.`parent` irgendwie so ähnlich ... -- Sebastian Mendel
php::bar PHP Wiki - Listenarchive