Peter: Select über mehrere Tabellen in einer Anfrage

Hallöle,

ich habe eine Frage zu MySql.

es seien zwei Tabellen:

Tabelle 1

P_ID    ||    VALUE

01    Erster
02    Zweiter
03    Dritter

Tabelle 2

DS_ID    ||    ARTEN

01     Gurken
01     Tomaten
01     Paprika

02     Hack
02     Gyros

Die DS_ID der zweiten Tabelle entspricht der P_ID der ersten Tabelle.

Ich suche nun die SQL-Anweisung, welche mir folgendes Ergebnis liefert:

P_ID,  VALUE,   ARTEN

01  Erster  Gurken, Tomaten, Parika
02  Zweiter  Hack, Gyros

Ich habe versucht, eine solche Anweisung zu gestalten, krieg´s aber nicht hin.

Geht das überhaupt in einer Anweisung ? Kann ich in diesem Beispiel die Arten in einer solchen Auflistung beziehen ?

Gruß, Peter

  1. hallo

    Ich habe versucht, eine solche Anweisung zu gestalten, krieg´s aber nicht hin.

    wie sieht denn dein ansatz aus ?

    Geht das überhaupt in einer Anweisung ?

    ja

    Kann ich in diesem Beispiel die Arten in einer solchen Auflistung beziehen ?

    ja

    cu
    ulli

    1. wie sieht denn dein ansatz aus ?

      ungefähr so:

      select rec0.*, rec1.* from tabelle0 rec0, tabelle1 rec1
      where rec0.P_ID = rec1.DS_ID;

      Dabei bekomme ich aber die Arten eben nicht als Auflistung zurück. Ich habe auch mit erfolglos joins rumgepfriemelt.

      Geht das überhaupt in einer Anweisung ?
      ja
      Kann ich in diesem Beispiel die Arten in einer solchen Auflistung beziehen ?
      ja

      Wie ? Ich wäre für einen Hinweis dankbar, wie ich die Arten im Ergebnis-Array als Auflistung beziehen kann.

      Vielen Dank, Peter

      1. hallo

        ungefähr so:

        select rec0.*, rec1.* from tabelle0 rec0, tabelle1 rec1
        where rec0.P_ID = rec1.DS_ID;

        da wirst du wohl als ausgabe das hier bekommen oder?
        01 erster gurken
        01 erster salat
        01 erster ...
        02 zweiter ...
        usw.

        ... ich verstehe jetzt erst deine frage =)

        Geht das überhaupt in einer Anweisung ?
        ja

        ich nehme alles zurück und behaupte das gegenteil (ups) ... imho geht das nicht ... musst wohl das problem in zwei schritten erschlagen.

        Wie ? Ich wäre für einen Hinweis dankbar, wie ich die Arten im Ergebnis-Array als Auflistung beziehen kann.

        du kannst doch mit join(",",$array) ein array in einen string umwandeln.

        cu
        ulli

      2. yo,

        ich würde erst einmal dein datenmodell überdenken, bevor ich mich an die abfragen ran mache. kann sehr gut sein, dass man es besser gestalten kann. dazu wäre es aber gut, mehr deiner vorgaben zu kennen.

        wenn du das datenmodell behalten willst, lies alle datensätze in ein array ein und schreibe dir ein script, dass aus dem array die gewünschte form ausliest. dazu musst du deiner abfrage noch eine entsprechende sortierung mitgeben, zum beispiel ORDER BY sparte_mit_den_arten. oder aber du machst mehrere abfragen draus.

        Ilja