begrüße!
ich beschäftige mich grade mal wieder ein wenig mit nested sets und schönen bäumen..
ich möchte zu einer id nur die direkten nachfahren auslesen.. dafür habe ich folgenden query gebaut:
damit bekomme ich alle daten wie gewünscht.. aber ich bekomme auch alle kinder zu dem knoten.. ich möchte aber nur die direkten nachfahren und nicht die kindeskinder (sagt man das so bei bäumen? )
im prinzip muss man den query ja nur um einen having teil erweitern.. also
das problem ist aber, dass ich irgendwie nich draufkomme, wie ich ohne extra query an den parent_level rankomme.. mit parent_level meine ich einfach den level des elternelements, zu dem die direkten nachfahren ausgelesen werden sollen..
habe jede möglich art von id mit und ohne distinct gezählt und habe keine brauchbaren ergebnisse erhalten..
hat jemand ne idee?
mfg
whizzler
ich beschäftige mich grade mal wieder ein wenig mit nested sets und schönen bäumen..
ich möchte zu einer id nur die direkten nachfahren auslesen.. dafür habe ich folgenden query gebaut:
Code:
SELECT
COUNT(root.process_id) AS `level`, `node`.`process_id`,
`node`.`lft`, `node`.`rgt`, ROUND((node.rgt - node.lft - 1)/2) AS `num_childs`
FROM
`process` AS `parent`
CROSS JOIN
`process` AS `root`
CROSS JOIN
`process` AS `node`
WHERE
(node.lft > root.lft AND node.lft < root.rgt)
AND
(node.lft > parent.lft AND node.lft < parent.rgt)
AND
(parent.process_id = 1) AND (node.is_active = 1)
GROUP BY `node`.`lft`
ORDER BY `node`.`lft` ASC
damit bekomme ich alle daten wie gewünscht.. aber ich bekomme auch alle kinder zu dem knoten.. ich möchte aber nur die direkten nachfahren und nicht die kindeskinder (sagt man das so bei bäumen? )
im prinzip muss man den query ja nur um einen having teil erweitern.. also
Code:
HAVING level = (parent_level + 1)
das problem ist aber, dass ich irgendwie nich draufkomme, wie ich ohne extra query an den parent_level rankomme.. mit parent_level meine ich einfach den level des elternelements, zu dem die direkten nachfahren ausgelesen werden sollen..
habe jede möglich art von id mit und ohne distinct gezählt und habe keine brauchbaren ergebnisse erhalten..
hat jemand ne idee?
mfg
whizzler