Abfrage gesucht

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

  • Abfrage gesucht

    Hallo!

    Ich habe leider ein riesen Problem eine Abfrage aus 3 Tabellen zu erstellen. Ich möchte gerne folgendes machen:

    Aus diesen Tabellen hier

    Tabellen
    ------------
    haendler
    - Feld kundennr
    - Feld name
    - Feld plz

    budget1
    - Feld kundennr
    - Feld budget1

    budget2
    - Feld kundennr
    - Feld budget2

    Eine Abfrage erstellen die mir das hier ausgibt

    kundennr|name|plz|budget1|budget2


    In den budget Tabellen sind jedoch nicht immer alle Kunden enthalten. Also 1:n Beziehungen!


    Kann mir vielleicht jemand helfen?

    Vielen Danke vorab...

  • #2
    http://php-resource.de/forum/showthr...threadid=28292

    Ein LEFT JOIN wie z. B. im Abschnitt "alle zahlen auslesen und das quadrat dazu, sofern vorhanden" hilft

    In deinem Fall brauchst du zwei LEFT JOINS:
    Einmal haendler LEFT JOIN budget1 und einmal von der selben Tabelle haendler ein LEFT JOIN zu budget2
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Also irgendwie bekomme ich das nicht so hin.

      SELECT haendler.*, budget1.*, budget2.* FROM haendler, budget1, budget2 LEFT JOIN haendler ON haendler.kundennr=budget1.kundennr
      LEFT JOIN haendler ON haendler.kundennr=budget2.kundennr

      Ich habe jetzt schon einiges ausprobiert....ich bekomme immer nur Fehlermeldungen raus oder ein falsches Ergebnis.

      Kommentar


      • #4
        Ich habe jetzt schon einiges ausprobiert....ich bekomme immer nur Fehlermeldungen raus oder ein falsches Ergebnis.
        Und diese würde ich an deiner Stelle auch mal posten, damit man dir helfen kann!

        Kommentar


        • #5
          Fehlermeldung lautet hierbei z.B.:

          SELECT haendler. * , budget1. * , budget2. *
          FROM haendler, budget1, budget2
          LEFT JOIN haendler ON haendler.kundennr = budget1.kundennr
          LEFT JOIN haendler ON haendler.kundennr = budget2.kundennr
          LIMIT 0 , 30
          MySQL meldet:

          #1066 - Not unique table/alias: 'haendler'

          Kommentar


          • #6
            ja, weil du auf die Tabelle haendler zwei mal zugreifst.

            Gib jeder Tabelle einen Alias.

            Kommentar


            • #7
              Hm also ich habe jetzt z.B. mal folgendes versucht:

              SELECT h. * , b1. * , b2. *
              FROM haendler h, budget1 b1, budget2 b2
              LEFT JOIN haendler htmp ON htmp.kundennr = b1.kundennr
              LEFT JOIN haendler htmp2 ON htmp2.kundennr = b2.kundennr

              Da läd der phpMyAdmin nur aber kommt kein neues Ergebnis zurück.

              Alle Beispiele die ich mir angesehen habe sind leider immer nur mit einem Left join

              Kommentar


              • #8
                ist auch irgendwie nicht das, was es werden soll. oder?

                ausm stehgreif würde ich eher sowas vermuten:

                select
                from händler
                left join b1
                left join b2

                Kommentar


                • #9
                  Ja, wenn es so einfach wäre.

                  Ich muss hier etwas fertig programmieren und ich bekomme einfach die Abfrage nicht hin.

                  Ich brauche ja nur ein Ergebnis mit allen Feldern für jeden Datensatz. Gut am Ende soll noch eine Summe mit drin sein aber das wäre sicher auch noch gegangen.

                  Also hier einmal meine Beispieldaten:

                  Tabelle haendler
                  kundennr | name | plz
                  1 | Reifenhaus | 50259
                  2 | Waldhaus | 50129

                  Tabelle budget1 (kundennr nicht Unique)
                  kundennr | budget1
                  1 | 5002.2
                  2 | 30.5
                  1 | 200

                  Tabelle budget2 (kundennr nicht Unique)
                  kundennr | budget2
                  2 | 33
                  1 | 230


                  Ergebnis
                  kundennr | name | plz | budget1 | budget2
                  1 | Reifenhaus | 50259 | 5202.2 | 230
                  2 | Waldhaus | 50129 | 30.5 | 33


                  Ich glaube jetzt sieht es doch ganz anders aus!

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    ausm stehgreif würde ich eher sowas vermuten:

                    select
                    from händler
                    left join b1
                    left join b2
                    sieht ziemlich richtig aus

                    @smilysmily
                    Ich habe nicht umsonst von der selben tabelle haendler gesprochen und nicht von der gleichen.
                    du brauchst jede tabelle genau einmal, so wie tobiaz gesagt hat
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar

                    Lädt...
                    X