Abfrage über 3 Tabellen

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

  • Abfrage über 3 Tabellen

    Hi @ all

    sicher ein simples Verständnis-Problem, aber ich sehe den Wald vor lauter Bäumen nicht mehr.

    Ich möchte aus 3 Tabellen einer DB mehrere Spalten einlesen um sie zu kombinieren.

    Meine Lösung mit nur 2 wäre ja mit
    PHP-Code:
    $result mysql_db_query($dbase"Select t1.bla, t2.bla FROM foo as t1, 
    bar as t2 WHERE t1.bla = t2.bla"
    ); 
    Bei 3 klappts aber nicht mehr :
    PHP-Code:
    $result mysql_db_query($dbase"Select t1.bla1, t1.bla2,
    t2.blub1, t2.blub2, t2.blub3, t3.muub1, t3.muub2 from tabelle1 as t1,
    tabelle2 as t2, tabelle3 as t3 where t2.blub1 = t3.muub1 order by
    t2.blub2"
    ); 
    Ist das überhaupt machbar ? Oder muß ich zu einem JOIN, egal welcher Art, umschwenken ?

    Danke für konstruktive Tipps

  • #2
    Oder muß ich zu einem JOIN, egal welcher Art, umschwenken ?
    wenn die tabellen durch entsprechende schlüssel verknüpft sind, wäre ein join die eleganteste lösung.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hmmm,

      nicht direkt, leider. Dadurch bin ich gezwungen das mit 3 Tabellen
      zu machen.

      In Tabelle1 gibt es products_id & categories_id

      In Tabelle2 gibt es categories_id & categories_name

      In Tabelle3 gibt es products_id & products_name

      Natürlich noch mehr Spalten, aber die benötige ich nicht.

      Was ich jetzt brauche, ist die Ausgabe der Namen in unsortierter Reihenfolge,
      einfach als großen Datenhaufen den ich mir aufsplitte.

      Wie müßte sowas denn mit JOIN aussehen ?
      Oder brauche ich Tabelle1 gar nicht ?
      Ich benötige im Prinzip ja nur categories_name & products_name...

      Kommentar


      • #4
        Doch, diese Tabellen sind verbunden.

        Die Produkte und Kategorien hängen über die Lookup-Tabelle 1 zusammen. Das heißt, man geht zum Beispiel von der Produkttabelle mit der Produktid zur Lookuptabelle, und von da mit der Kategorieid zur Kategorietabelle.

        In SQL wäre das sowas von der Art (schematisch):

        PHP-Code:
        SELECT products_namecategories_name

        FROM tabelle3

        LEFT JOIN tabelle2 USING
        (produkt_id)

        LEFT JOIN tabelle1 USING(categories_id
        ich glaube

        Kommentar


        • #5
          Re: Abfrage über 3 Tabellen

          Original geschrieben von Dirk-Kiel


          Ist das überhaupt machbar ? Oder muß ich zu einem JOIN, egal welcher Art, umschwenken ?
          Dein zweites beispiel ist ein join.

          greets
          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

          Kommentar


          • #6
            Hmmm,

            das sieht gescheit aus vom Code her.
            Ich habs so umgesetzt :
            PHP-Code:
             $result mysql_db_query($dbase"SELECT products_name, categories_name FROM products_description 
            LEFT JOIN categories_description USING(products_id) 
            LEFT JOIN products_to_categories USING(categories_id)"
            ); 
            Als Fehler kommt dann aber :
            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
            an der Abfragestelle.

            Stimmt die Syntax so denn nicht ?

            Kommentar


            • #7
              Original geschrieben von Dirk-Kiel
              Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
              http://www.php-resource.de/forum/sho...threadid=50454
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Super Antwort.

                Kannst Du das übersetzen :

                Je te frappe la pomme de terre du col

                Siehste...kauf dir nen Übersetzer.

                Oder lese hier : http://babelfish.altavista.com/tr

                Verlangt das soviel, dass man sich mit einem Verweis aus der Affäre schmuggelt ?

                Kommentar


                • #9
                  in dem dir verlinkten Text steht drin, wie man mit deiner Fehlermeldung umzugehen hat. Und da das jeden Tag hundertmal vorkommt, steht das in den Regeln und wird nur verlinkt.

                  Und weil ich so nett bin sag ich dir das Zauberwort: mysql_error().
                  ich glaube

                  Kommentar


                  • #10
                    solltest du
                    PHP-Code:
                    error_reporting(E_ALL); 
                    meinen, das ist drin und hier die komplette Fehlermeldung von Anfang bis Ende :

                    PHP-Code:
                    Warningmysql_fetch_array(): supplied argument is not a valid
                     MySQL result resource in 
                    /hp/ac/aa/aq/www/blubber.php on line 22 
                    Zeile 22 : Die Select-Abfrage

                    Also nun ?

                    Kommentar


                    • #11
                      Original geschrieben von Dirk-Kiel
                      Verlangt das soviel, dass man sich mit einem Verweis aus der Affäre schmuggelt ?
                      Ist es von dir zu viel verlangt, dort mal kurz nachzulesen, was unser standardmässig empfohlenes Vorgehen zwecks Debugging in solchen Fällen ist, wenn du solche elementaren Schritte schon nicht selber kennst?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von Dirk-Kiel
                        solltest du error_reporting(E_ALL); meinen
                        Nein, nicht nur.
                        Also nun ?
                        Jetzt liest du den verlinkten Threrad bitte noch mal, diesmal aufmerksam und mit Verstand, Danke.

                        Es steht dort explizit drin,
                        Wenn Ihr eine Fehlermeldung der Art Warning: ...: supplied argument is not a valid MySQL result resource bekommt, dann [...]
                        Also schlage ich vor, du hörst jetzt mal auf mit dem Gemecker, und unternimmst endlich ein paar halbwegs intelligente Schritte, um der Lösung des Problems näherzukommen.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Syntax-Fehler entdeckt und eliminiert.

                          Kommentar

                          Lädt...
                          X