Announcement

Collapse
No announcement yet.

Anzahl von Kindern ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anzahl von Kindern ermitteln

    Hallo.

    Ich kriege da eine Query nicht hin und hoffe, dass hier ein paar Cracks mir helfen können:

    Es geht darum, dass ich eine Tabelle habe, in der auch eine Spalte parent_id ist, so dass ich eine Eltern-Kind Struktur aufbauen kann.

    Nun möchte ich eine Abfrage bauen, die mir zu einem bestimmten Eintrag die Kindelemente zurück gibt und gleichzeitig anzeigt, ob diese Kindelemente ebenfalls Kinder haben (noch besser gleich die Anzahl der Kinder). Damit will ich es schaffen, nur dann einen "Zeige Kinder" Button in der GUI anzuzeigen, wenn dieses Element auch weitere Kinder hat.

    In der GUI werden mir also bspw. schon alle Elemente einer Auswahl angezeigt. Bei einigen wird ein "Zeige Kinder" Button angezeigt. Klicke ich diesen Button geht die ID des ausgewählten Elements in die Query und liefert mir die Einträge mit id = parent_id WHERE parent_id = <selected_element_id>.
    Soweit so gut, doch im Resultset hätte ich gerne noch die Information, ob die gerade gefundenen Einträge auch wieder Kinder mit eben dieser gefundenen ID haben. So kann ich in der GUI abfragen: if (entry.hasChildren) { showButton; }.

    Ich hatte auch mit count(id) rumprobiert, doch das Problem hier scheint auch zu sein, dass ich dann nur eine Zeile als Ergebnis erhalte, doch ich möchte natürlich eine Projektion auf die benötigten Spalten und zusätzlich die Anzahl der Kindelemente in einer zusätzlichen Spalte.

  • #2
    So sieht das gut aus...

    Code:
    SELECT se.id, 
    (select count(y.id) as num from myTable y where y.parent_id = se.id) as numChild
    FROM myTable se 
        WHERE se.parent_id = 5

    Comment


    • #3
      Wozu gibt es JOINs und GROUP BY
      [HIGHLIGHT="SQL"]SELECT se.id
      , COUNT (y.id) as numChild
      FROM myTable se
      LEFT JOIN myTable y ON y.parent_id = se.id
      WHERE se.parent_id = 5
      GROUP BY se.ID [/HIGHLIGHT]

      Comment

      Working...
      X