"rekursiver" Join

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • "rekursiver" Join

    Hallo,

    ich habe folgende Tabellen:

    Kategorie: id, name, parent
    Daten: bezeichnung, kategorie, ...

    Kennt jemand eine elegantere Möglichkeit die Suche nach Daten einer Kategorie zu verwirklichen, als die, dass man erst Kategorie rekursiv durchschnattert und dann die Entsprechenden Artikel lädt?

    Also sowas wie ein rekursiver JOIN bis parent=0

    Hmm, vielleicht blödsinnig, war so eine Idee

  • #2
    Hmm... vielleicht hab ich mich unklar ausgedrückt...
    Ich soll eine Suche realisieren, in der Teilwörter entweder in der Kategorie oder in einem anderen Feld auftauchen.
    Zur Zeit suche ich die Kategorien durch und gebe dann alle Datensätze aus, die in einer der gefundenen Kategorien (oder ihren unterkategorien) stehen.

    So findet die Suche aber natürlich immer alle Datensätze der Kategorie, auch wenn weitere Suchbegriffe vorgegeben werden.

    Bsp: Suchstring = "a b"

    Es werden folgende Datensätze ausgegeben:
    1. Alle, bei denen "a" und "b" in anderen Feldern auftaucht,
    2. Alle, die einer Kategorie oder Unterkategorie zugeordnet sind, die "a" oder "b" beinhaltet.

    Es sollen aber eigentlich nur diejenigen Datensätze angezeigt werden, in deren anderen Feldern UND Kategorie bzw. Parent-/Parent-/Parentkategorie "a" und "b" auftauchen. (bis Parent = 0)
    Mein Denkansatz ist folgender:

    SELECT * from tabelle WHERE
    CONCAT(andere Felder, Kategorie, Parentkategorie, …) LIKE '%a%' AND
    CONCAT(andere Felder, Kategorie, Parentkategorie, …) LIKE '%b%'

    Aber vielleicht ist das auch total bescheuert so.
    Hat jemand einen Tipp für mich, wie ich das angehen kann?
    Zuletzt geändert von skanto; 10.07.2005, 11:12.

    Kommentar


    • #3
      Ich habe mir jetzt folgendermaßen geholfen:

      Ein zusätzliches Feld in in der Kategoriendatenbank, in dem sämtliche Namen der übergeordneten Kategorien eingetragen sind. Beim umbenennen oder "verschieben" der Kategorie wird gleichzeitig auch der Inhalt des Feldes erneuert.
      Klappt gut so :-)

      Kommentar

      Lädt...
      X