Datenbankabfrage GroupBy

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

  • Datenbankabfrage GroupBy

    Liebes Forum,

    ich habe eine Datenbank mit ungefähr folgendem Aufbau:

    id | pid | name | adresse | PLZ
    0 | 12 | frank meister | melzerstr 12 | 88214
    1 | 12 | udo walz | melzerstr 12 | 88214
    2 | 12 | sina schulze | melzerstr 12 | 88214
    0 | 19 | jan maier | grünweg 24 | 0152
    1 | 19 | frank holz | grünweg 24 | 32121
    2 | 19 | tamara läpple | grünweg 24 | 66592

    Nun mache ich eine Abfrage und gruppiere diese nach PID

    PHP-Code:
    SELECT adresse FROM `testGROUP BY `pidORDER BY `name
    Nun erhalte ich genau ein Ergebniss. Ich möchte aber als Untermenge alle Namen haben, die in der Adresse wohnen, d.h. mit einer Abfrage möchte ich alle Namen haben, die unter einer pid angegeben sind.

    Dieses Ergebniss möchte ich zu allen pids haben, mit nur einer Abfrage.

    Ich hoffe Ihr versteht was ich meine.

    Danke für die Hilfe
    Viele Grüsse
    RON

  • #2
    Hallo,

    das gewünschte Ergebnis bekommst du doch schon, wenn du nach der PID sortierst. Suchst du nach "Gruppenwechsel", also wie du dieses Ergebnis PHP-seitig aufgeteilt bekommst? Dann muss ich es in ein anderes Forum verschieben.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Mir scheint auch, du möchtest auf Group By verzichten, weil du gar nicht gruppieren willst. Zumindest nicht das Ergebnis, sondern höchstens die Ausgabe.

      OffTopic:
      Weil wir das Thema in der letzten Zeit so oft haben: ist die Zuordnung zwischen "pid" und "adresse" nur zufällig so, oder sollte man da etwas normalisieren?


      EDIT:
      da die ids mehfach vorkommen, scheint es sich wohl nur um schlecht gemachte pseudo-daten zu handel...
      Zuletzt geändert von TobiaZ; 20.01.2010, 15:05.

      Kommentar


      • #4
        hi amica,

        danke für die Antwort. wie ich das ergebniss in php aufteile weiß ich, ich dachte nur ich könnte das mit einer mysql abfrage lösen, daß ich als ergebniss z.B. folgendes erhalte:

        adresse -> array(namen)

        Also das sie Adresse nur einmal kommt und eben die dazugehörigen sortierten Namen. Oder als anderes Beispiel, eine Produktdatenbank, mit Produkten von verschiedenen Anbietern. Das nur das Produkt herauskommt und dann alle Anbieter mit den jeweiligen Preisen für das Produkt.

        PHP-Code:
        SELECT FROM `testGROUP BY `produktnameORDER BY `preis
        Viele Grüße

        Kommentar


        • #5
          Achso, ich finde das zwar weniger sinnvoll, aber das bekommst du mit "group_concat(name order by name separator ';')" in den Spaltenreferenzen und "group by pid" hin.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar

          Lädt...
          X