Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] inner join oder wie ????

Einklappen

Neue Werbung 2019

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

  • [Erledigt] inner join oder wie ????

    Hallo mysql Gurus,
    kann mir hier jemand mit Joins helfen, ich verzweifel noch.
    Folgende Abfrage
    PHP-Code:
    $sql "SELECT gruppeartikel.artikel, gruppeartikel.position, artikelkurz.bezeichnung1, artikelkurz.bezeichnung2, artikelpreise.preis, artikellang.bezeichnung 
            FROM gruppeartikel, artikelkurz, artikelpreise, artikellang 
            WHERE gruppeartikel.gruppe = 
    $gruppenid 
            AND (artikelkurz.artikel = gruppeartikel.artikel AND artikelkurz.sprache = 'D')
            AND (artikellang.artikel = gruppeartikel.artikel and artikellang.sprache = 'D')
            AND    (artikelpreise.artikel = gruppeartikel.artikel AND artikelpreise.gruppe = 'EURO') ORDER BY gruppeartikel.position"

    Jetzt brauch ich aber auch noch das Feld artikellang.sprache = "E".
    Wie bekomme ich das Feld ausgelesen, ohne das die Datensätze alle dopelt erscheinen?

    Gruß Ingo


  • #2
    Zitat von Ingola Beitrag anzeigen
    kann mir hier jemand mit Joins helfen
    Die Artikel bei SELFHTML können:

    http://aktuell.de.selfhtml.org/artikel/datenbanken/

    Folgende Abfrage
    Die „implizite“ JOIN-Syntax, also einfach das angeben mehrere Tabellen bei FROM, solltest du vermeiden.

    Kommentar


    • #3
      Zur besseren Übersicht habe ich den SQL formatiert und dann auf ANSI JOIN umgesetzt.

      Code:
      SELECT gruppeartikel.artikel,
             gruppeartikel.position,
             artikelkurz.bezeichnung1,
             artikelkurz.bezeichnung2,
             artikelpreise.preis,
             artikellang.bezeichnung
        FROM gruppeartikel
        JOIN artikelkurz
          ON artikelkurz.artikel = gruppeartikel.artikel
        JOIN artikelpreise
          ON artikelpreise.artikel = gruppeartikel.artikel
        JOIN artikellang
          ON artikellang.sprache = artikelkurz.sprache
       WHERE artikelkurz.sprache IN ('D', 'E')
         AND artikelpreise.gruppe = 'EURO'
         AND gruppeartikel.gruppe = $gruppenid
      Was Dir bisher gefehlt hat, war ein JOIN zwischen den Tabellen ARTIKELLANG und ARTIKELKURZ. Als JOIN habe ich die Spalte SPRACHE genutzt, ob dass genau stimmt weiß ich nicht. Da fehlen mir die Tabellenstrukturen.
      Zudem werden jetzt zwei Sprachen abgefragt, siehe IN ( 'D', 'E')

      Probier mal, ob es stimmt, mangels Daten kann ich nichts testen.

      Grüße
      Thomas

      Kommentar


      • #4
        artikellang.sprache = "E"
        Das ist doch schon im Vorfeld ein Designfehler.

        e = english
        e = spanish
        e = esperanto
        e = estonian
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Hallo Thomas,
          vielen Dank für deinen Vorschlag werde es nachher mal ausprobieren.

          @nikosch
          Ich habe das E nicht designt, das gibt es schon seit der Mensch schreiben kann.

          Kommentar


          • #6
            Alter, er meint, dass du nicht siehst, welche Sprache es sein kann!
            MfG
            ~Capfly

            Kommentar


            • #7
              Für alle, es gibt in der Datenbank nur Deutsche und Englische Texte, und die kann man sehr wohl mit "D" und "E" unterscheiden.

              Kommentar


              • #8
                Artikel != Datenbank

                Du sagtest nie, dass es was mit der DB nur im Geringsten zu tun haben könnte!
                MfG
                ~Capfly

                Kommentar


                • #9
                  Ich habe das E nicht designt, das gibt es schon seit der Mensch schreiben kann.
                  Das Wort Design – Wikipedia hat mehr Bedeutungen, als nur grafische Gestaltung.

                  Für alle, es gibt in der Datenbank nur Deutsche und Englische Texte, und die kann man sehr wohl mit "D" und "E" unterscheiden.
                  Es ist am Anfang immer so, dass man etwas nicht braucht. Und später dann doch und dann vor einem Problem steht. Das nennt man Designfehler (error by design). Ich sehe jetzt kein Problem, im Vorhinein darauf zu achten, normierte Sprachkürzel zu verwenden.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Vielleicht will er Platz sparen`?
                    MfG
                    ~Capfly

                    Kommentar

                    Lädt...
                    X