Wählen Sie Eltern und Kinder mit MySQL

8

Ich weiß, dass diese Frage oft gestellt wird, aber heute kann ich die Antwort nicht finden, die ich suche. Ich habe eine Tabelle mit diesem Schema.

%Vor%

Ich möchte die übergeordneten Zeilen und die untergeordneten Elemente dieser Zeilen auswählen. Ich erlaube Kindern nicht, Kinder zu haben, also ist es nur ein Elternteil mit einer beliebigen Anzahl von Kindern.

Ich denke, ich habe das schon einmal mit Verbindungen oder inneren Verbindungen gesehen.

    
mellowsoon 04.06.2011, 23:34
quelle

3 Antworten

23

Eltern sind Datensätze ohne parent_id .
Kinder haben parent_id gleich dem% comm_de% des Elternkommentars.

%Vor%

Beachten Sie, dass der Self-Join ein Outer-Join sein sollte, damit Sie keine übergeordneten Kommentare ohne Kinder übersehen.

    
bernie 04.06.2011, 23:48
quelle
3

Suchen Sie nach

? %Vor%

UPDATE
 Oder LEFT JOIN , wenn Sie Zeilen ohne Eltern sehen möchten

    
a1ex07 04.06.2011 23:45
quelle
2

Ich habe nicht genau gesagt, ich denke, Sie bekommen dieses Problem als folgendes:

Ordered_Item

%Vor%

Ordered_Options

%Vor%

Ausgabe

%Vor%

Und die meine Vorschläge, diese Methode zu verwenden, lösen dieses Problem wie folgt:

  1. Der einfachste Weg wäre, die Gruppe GROUP_CONCAT zu verwenden Funktion hier ..
%Vor%

Was würde ausgeben:

%Vor%

Auf diese Weise können Sie so viele Optionen haben, wie Sie möchten, ohne Ihre Abfrage ändern zu müssen.

Ah, wenn Sie sehen, dass Ihre Ergebnisse abgeschnitten werden, können Sie das Größenlimit von GROUP_CONCAT wie folgt erhöhen:

%Vor%     
jmail 25.02.2014 06:46
quelle

Tags und Links