SQL Abfrage - Zusammenfügen von mehreren Tabellen

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

  • SQL Abfrage - Zusammenfügen von mehreren Tabellen

    Hi,

    ich müsste eine Abfrage machen die auf mehrere Tabellen zugreift, aber gewisse Spalten dieser Tabellen zusammenfügt.

    z. B
    Tabelle Kunden hat eine eindeutige ID und Tabelle Produkte ebenfalls eine eindeutige (Sub)-ID ...


    Ident ID
    ---------------
    Kunde 1
    Produkt 11
    Produkt 12
    Produkt 13

    Kunde 2
    Produkt 21
    Produkt 22
    Produkt 23

    Zur Sortierung müsste ich sie jetzt zusammenfügen, hab aber keine Ahnung wie, im MySQL Manual habich ad hoc nichts gefunden

    thx 4 help

    - Tex Hex -

  • #2
    zeige doch mal an einem beispiel, welche daten in den tabellen enthalten sind und zeige auch, wie diese nach dem 'zusammenführen' (JOIN) aussehen sollen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ja bitte,

      es wären im allgemeinen nicht schlecht, bei solchen Anfragen, die strukuren der Tabellen auf die zugergriffen werden soll zu posten !

      Und dann ein Beispiel wie ein Ergebnis aussehen soll, sprich die :
      tabelle1.id , tabelle2.kunde, tabelle1.name .....

      das hilft enorm wenn man helfen will

      rth
      H I L F E
      GD FreeType Antialising
      Gesuch PHP Entwicklungsumgebung
      ------------------------------------------
      Der Cmabrigde rael tset, sruf whoin du wlilst

      Kommentar


      • #4
        Jop - sorry ... war eigentlihc dabei grad was "ansehbareres" zu basteln, als ich auf ein viel gravierenderes Problem gestoßen bin .... höchstwahrscheinlich muss ich eh alles umbaun ... hmm aber ich glaub so eine Abfrage werd ich trotzdem noch brauchen *kopfschmerz*

        Versuch das jez auszuarbeitn ... und dann etwas klarer darzustelln

        thx

        Kommentar


        • #5
          Soooo...

          es geht um dieses Menü hier -> http://www.php-resource.de/forum/sho...ght=php+men%FC

          ich hab das ursprüngliche Menü jetzt eigentlich soweit dass es passt.

          Mir sind da allerdings ein paar ziemliche Brocken im Weg...

          1. Eigentlich nimmt sich dieses Menü bis "jetzt" seine Daten aus nur EINER Tabelle.... ich brauche es aber für mehrere

          Bsp.:

          Tabellen: Videos - Panoramas - Cd/DVD - Streaming

          in jeder Tabelle sind jetzt n haufen Datensätze die anschliessend in ein Menü gepackt werden müssn .. in etwa so

          Firma1
          -----Panoramas
          ----------Pano1
          ----------Pano2
          ----------Pano3

          Firma2
          -----Panoramas
          ----------Pano1
          ----------Pano2
          ----------Pano3

          .... so sollte das Menü aufklappen wenn man auf den -Panorama- Button klickt, dasselbe wiederholt sich bei den anderen Buttons...

          Im ursprünglichen Script ist das einfach in der Tabelle durch INT- Werte gelöst

          -1
          --11
          --12
          ----121
          ----122
          ----123
          --13

          so würde das dann aussehn.....

          Tja mit Zahlen ist man allerdings bald am Ende d.h bei 19 würde das Submenü aufhören....

          Was als nächstes noch anfällt ist, dass es noch einen REFERENZEN - Button gibt.. bei dem alle Tabellen eingelesen werden um im Menü unter der Firma aufgegliedert zu werden.

          Bsp.:

          Firma1
          --Panorama
          --Video
          --Cd/DVD
          ------dvd1
          ------dvd2
          ------dvd3
          --Streaming

          Firma 2
          --Panorama
          --Video
          etc....

          Hier noch eins der Pix die ich im anderen Thread aufgeführt habe:





          Hmmm die Überlegung ist natürlich die, möglichst wenig Spalten in die ganzen Tabellen reinhaun zu müssn, damit ich damit dann das Menü abrufen kann!

          Die Tabellen sehn alle ca so aus:

          INT_ID-----MENUE_ID-----NAME-----URL-----DESCRIPTION------FRAMES


          Int_id ist einfach nur eine eindeutige vortlaufende Nummerierung

          Die Spalte Menue_ID sollte nun aus allen Tabellen zusammengefügt werden um damit das Menü aufbauen zu können

          Name ist die Beschriftung des einzelnen Menübuttons
          Description die Beschreibung

          und Frames .. der Frame in dem es geöffnet werden soll.....


          Tjo ... also vorerst würdich nur gern wissen wie man alle Tabellen vereinen kann um damit das Menü zu erstellen ...

          das nächste Problem kommt danach =)

          P.s ich hoff man kann das alles noch nachvollziehn.... ich schreib mir hier die Finger wund.... es ist absolut unerträglich hier im Büro... Temperaturen von ca ~30 Grad bei einer Luftfeuchtigkeit von 99% .... alle Computer röhren mir was vor .. ich hab absolut kein Bock mehr... und hoff ich terrorisier euch nicht..... =)

          Thx a lot

          - Tex -

          Kommentar


          • #6
            Ok.. ums mal kurz und hoffentlich anschaulich zu präsentieren:




            Diese Abfrage bräuchte ich .... einfach eine Abfrage von sagen wir mal allen 10 Tabellen, die man dann - GROUP BY MENUE_ID sortiert und geordnet im Php-Menü ausgibt....

            Thx 4 help

            - Tex -

            Kommentar


            • #7
              hab mir erstmal den andern Thread durchgelesen

              poste doch hier mal das Statement rein, was er bei Deiner Test-Seite (ich tipoe übrigens grade blind, sorry für evtl. Rechtschreibfehler ) ausführt um sich das Menü aus der Tabelle zu ziehen, dann ist es imho etwas einfacher, das für mehrere Tabellen auszuweiten... ich hab zwar grob ne Ahnung, wie Du das haben möchtest, aber bevor ich hier rumrate wüde ich lieber das Statement sehen

              Kommentar


              • #8
                PHP-Code:
                function _load_data_in_array_from_mysql($config)
                    {
                        
                // Verbindung zu Datenbank herstellen:
                        
                $this->mysqllink mysql_connect($this->config['mysql']['host'], $this->config['mysql']['user'], $this->config['mysql']['pwd']) or die(mysql_error());
                        
                mysql_select_db($this->config['mysql']['db'], $this->mysqllink) or die(mysql_error());
                        
                // Daten aus mySQL Datenbank holen:
                        
                $sql "SELECT * FROM ".$this->config['mysql']['table']." ORDER    BY 'INT_ID'";
                        
                $result    mysql_query($sql);

                        while (
                $tmp    mysql_fetch_array($result)) {
                            
                $this->_menudata[] = $tmp;
                        }
                        
                $this->num_menu_rows mysql_num_rows($result) - 1;
                    } 
                Das ist im mom die Funktion mit der die Daten geladen werden.... dazu sei aber noch gesagt, daß hier noch die INT-Werte abgefragt werden ... aus nur EINER Tabelle... also

                1
                11
                12
                121
                2
                21

                etc....

                wenn ich weiß wie ich aus allen Tabellen eine Abfrage mach , machich mir Gedanken wie ich aus den nötigen Hieroglyphen z.B -> BMW.VID.121 <- meine Tabelle aufbauen kann...

                Thx - Tex

                Kommentar


                • #9
                  wenn ich das richtig verstehe, kannst Du doch einfach alle Daten aus den Tabellen ziehen, und einfach nach Menue_ID sortieren?

                  Also
                  Code:
                  SELECT * FROM table1, table2, table3,... WHERE ... ORDER BY menue_id
                  dann bekommst nachher für das obige Beispiel:
                  BMW.PAN.1
                  BMW.VID.1
                  BMW.VID.2
                  TUI.PAN.1
                  TUI.VID.1

                  und in einer Schleife mußt Du dann halt die Kategorie zwischenspeichern (PAN, VID) und bei einer Änderung der Kategorie einen neuen Menüpunkt anfangen.

                  als erstes also den Substr mit den ersten 3 Zeichen (BMW, TUI) als Oberpunkt, dann in einer Variablen den Substr(PAN,VID) speichern, neuen Unterpunkt für die aktuelle Kategorie, solange Ausgaben machen bis der aktuelle Substr != dem zwischengespeicherten ist, neuen Unterpunkt für die neue Kategorie usw.

                  müßte eigentlich funktionieren.

                  Kommentar

                  Lädt...
                  X