Ich habe zwei SELECT Abfragen, ist es möglich wegen der Performence die beiden Abfrage zu einer zusammenzufassen und so das ganze auch noch schneller zu machen?
1 Select Abfrage:
SELECT n.name,n.lft,n.rgt, COUNT( * ) -1 AS LEVEL
FROM nestedset AS n, nestedset AS p
WHERE n.lft
BETWEEN p.lft
AND p.rgt
GROUP BY n.lft
HAVING COUNT( * ) =2
ORDER BY n.lft
2 Select Abfrage:
SELECT Name FROM nestedset p WHERE lft>'$main->lft' AND rgt<'$main->rgt' ORDER BY lft";
In der ersten Frage ich die Hauptkategorien ab, und in der zweiten gebe ich die dazugehörigen Unterkategorien dann in einer Schleife aus.
Komplett mit php code:
$sql = "SELECT n.name,n.lft,n.rgt, COUNT( * ) -1 AS LEVEL
FROM nestedset AS n, nestedset AS p
WHERE n.lft
BETWEEN p.lft
AND p.rgt
GROUP BY n.lft
HAVING COUNT( * ) =2
ORDER BY n.lft";
$result = mysql_query($sql)or die($sql.'<br>'.mysql_error());
while ($main = mysql_fetch_object($result))
{
echo $main->name.'<br>';
$sql = "SELECT Name FROM nestedset p WHERE lft>'$main->lft' AND rgt<'$main->rgt' ORDER BY lft";
$result2 = mysql_query($sql)or die($sql.'<br>'.mysql_error());
while ($main2 = mysql_fetch_object($result2))
{
echo $main2->Name.', ';
}
echo '<br><br>';
}