Sortieren über mehrere Tabellen

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

  • Sortieren über mehrere Tabellen

    Ich habe folgendes Problem :

    Es sind mehrere Tabellen in ein und der selben Datenbank angelegt, mir geht es darum zwei Reihen aus zwei verschiedenen Tabellen, die sich aber in der selben Datenbank befinden auzugeben und zu sortieren.

    Beide Tabellen in denen sich die Felder befinden haben eine ID die fortlaufend ist, ich habe jetzt nur das Problem das ich nicht weiß wie ich die komplett anzeigen lassen kann.

    Kann mir da einer helfen ?

    Datenbank heißt : shop
    tabelle1 heißt : products und da brauche ich die reihe products_price
    tabelle2 heißt : products_description und davon brauche ich die reihe products_name

    Beide Tabellen haben einen Index der sich products_id heißt und von 1 hochgezählt wird.
    Grüße
    Andreas

  • #2
    gib mal beide strukturen. die tabellen lassen sich ja mit nem JOIN verbidnen und dann hast du das...
    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
      Original geschrieben von Abraxax
      gib mal beide strukturen. die tabellen lassen sich ja mit nem JOIN verbidnen und dann hast du das...
      products_price ist decimal(15,4)
      products_name ist varchar(64)

      und

      products_id ist int(11)

      ... meintest du das ?
      Grüße
      Andreas

      Kommentar


      • #4
        Original geschrieben von Maratos
        ... meintest du das ?
        fast

        ich meinte aber die gesamte struktur beider tabellen. mache einfach mal einen phpmyadmin export ...
        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


        • #5
          Ok... here we go :

          #
          # Table structure for table 'products'
          #

          CREATE TABLE `products` (
          `products_id` int(11) NOT NULL auto_increment,
          `products_quantity` int(4) NOT NULL default '0',
          `products_model` varchar(12) default NULL,
          `products_image` varchar(64) default NULL,
          `products_price` decimal(15,4) NOT NULL default '0.0000',
          `products_date_added` datetime NOT NULL default '0000-00-00 00:00:00',
          `products_last_modified` datetime default NULL,
          `products_date_available` datetime default NULL,
          `products_weight` decimal(5,2) NOT NULL default '0.00',
          `products_status` tinyint(1) NOT NULL default '0',
          `products_tax_class_id` int(11) NOT NULL default '0',
          `manufacturers_id` int(11) default NULL,
          `products_ordered` int(11) NOT NULL default '0',
          `products_lieferzeichen` varchar(30) NOT NULL default '0',
          `products_bestnrlieferant` varchar(30) NOT NULL default '0',
          `products_nettoek` varchar(100) NOT NULL default '',
          PRIMARY KEY (`products_id`),
          KEY `idx_products_date_added` (`products_date_added`)
          ) TYPE=MyISAM;



          #
          # Table structure for table 'products_description'
          #

          CREATE TABLE `products_description` (
          `products_id` int(11) NOT NULL auto_increment,
          `language_id` int(11) NOT NULL default '1',
          `products_name` varchar(64) NOT NULL default '',
          `products_description` text,
          `products_url` varchar(255) default NULL,
          `products_viewed` int(5) default '0',
          PRIMARY KEY (`products_id`,`language_id`),
          KEY `products_name` (`products_name`)
          ) TYPE=MyISAM;
          Grüße
          Andreas

          Kommentar


          • #6
            das hier gibt Dir alle products_name mit zugehörigen products_preis aus...

            PHP-Code:
            SELECT a.products_priceb.products_name FROM products aproducts_description b WHERE a.id b.id 

            Kommentar


            • #7
              ich würde es jedoch mit einem JOIN machen, damit keine große matrix gebildert wird.

              Code:
              SELECT a.products_price, b.products_name FROM products a LEFT OUTER JOIN products_description b USING(id)
              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


              • #8
                Vielen Dank schonmal für eure Hilfe, leider scheint weder die eine noch die andere Variante zu funktionieren, ich bekomme immer die Fehlermeldung :


                bei dem Statement :
                SELECT a.products_price, b.products_name FROM products a, products_description b WHERE a.id = b.id

                Unknown Column 'a.id' in 'where clause'

                und bei dem Statement :
                SELECT a.products_price, b.products_name FROM products a LEFT OUTER JOIN products_description b USING(id)

                Unknown Column 'a.id' in 'on clause'

                Grüße
                Andreas

                Kommentar


                • #9
                  ups.... id = products_id

                  Code:
                  SELECT a.products_price, b.products_name FROM products a LEFT OUTER JOIN products_description b USING(products_id)
                  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


                  • #10
                    naja... wer lesen kann ist klar im Vorteil *sich mal an die Nase fass*

                    Kommentar


                    • #11
                      Original geschrieben von P2oldi
                      naja... wer lesen kann ist klar im Vorteil *sich mal an die Nase fass*
                      genau. ich habe den fehler von dir übernommen, ohne selber zu schauen ...
                      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


                      • #12
                        Cool. Vielen Dank....

                        also diese Syntax klappt wunderbar :

                        SELECT a.products_price, b.products_name FROM products a LEFT OUTER JOIN products_description b USING(products_id)
                        ... wie müßte der Befehl den aussehen wenn ich bspw. in der Tabelle "products_description" noch eine weitere Spalte mit einfügen wollte ? Kann ich die einfach dazupacken oder müßte da dann nochmal ein JOIN dazwischen ?

                        Grüße
                        Andreas

                        Kommentar


                        • #13
                          du kannst statt der namen von mit aus auch einen * machen, für alle felder.

                          aber du kannst den namen auch separat angeben. vergiss nicht b. davor zu schreiben.

                          das hättest du aber auch mal alleine testen können.
                          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


                          • #14
                            Original geschrieben von Abraxax
                            du kannst statt der namen von mit aus auch einen * machen, für alle felder.

                            aber du kannst den namen auch separat angeben. vergiss nicht b. davor zu schreiben.

                            das hättest du aber auch mal alleine testen können.
                            Danke.... jetzt klappt es.

                            Ich habe es vorher getestet, nur wie du schon treffend bemerkt hast, sollte man nicht das b. vergessen...
                            Grüße
                            Andreas

                            Kommentar

                            Lädt...
                            X