im übrigen ist es nicht zwingend, primärschlüssel zu haben. daher galt der hinweis, spalten zu indizieren, welche in der suchbedingung benötigt werden.
Im Falle eines ID-Feldes ist es zwingend notwendig einen Primärschlüssel zu haben, da das ID Feld sonst doppelt belegt werden könnte und das Datenbanksystem dann nicht der dritten Normalform aus der Normalformenlehre entsprechen würde. Wenn Du trommeln magst, dann bitte richtig.
die frage galt aber in erster linie der performance. hier ist es in jedem fall besser, mehrere tabellen mit sql zu verbinden und eine abfrage auszuführen, als im programm geschachtelt auf mehrere einzeltabellen abzufragen.
Die Performancesteigerung bezog sich in diesem Fall auf ein konkretes Beispiel und die Ergebnismenge aus deiner Idee lässt sich in PHP nur noch zeitaufwendiger verarbeiten, als es die rekursive Abfrage(n) tut/tun. Also schau Dir einfach mal die einfache Lösung an, die ich in einem anderen Posting zu diesem Thread gemacht habe und fühl Dich nicht gleich auf die Füße getreten. Ein Forum ist eben dafür da Lösungen für ein spezielles Problem zu finden und Du bist eben nicht auf das Problem eingegangen und deswegen habe ich Deine Antwort als "falsch" gewertet, wenn sie doch inhaltlich gesehen auf allgemeine Performancefragen als richtig eingestuft hätte werden sollen. Also: Frieden, okay? ;)
Gruss
Stefan