ska: n:m beziehung

hallo,

jemand hatte mir mal diese n:m beziehung aufgestellt.

location                location_anbieter           anbieter
 -------------           -----------------           ---------------
 id_location ----------- id_location        +------- id_anbieter
 plz                     id_anbieter -------+        name
 ort                     bemerkung                   person
 vorwahl                                             strasse
                                                     plz
                                                     ort
                                                     telefon
                                                     fax
                                                     email
                                                     http

Leider weiss ich nicht so recht wie ich die Abfrage stellen soll.

Also der Besucher gibt die plz ein und möchte herrausfinden welche Anbieter ihm zu Verfügung stehen.

mbg ska

  1. yo,

    SELECT DISTINCT a.id_anbieter, a.name
    FROM location l
    INNER JOIN location_anbieter la ON la.id_location = l.id_location
    INNER JOIN anbieter a ON a.id_anbieter = la.id_anbieter
    WHERE l.pls = 'hier_pls_angeben'
    ;

    Ilja

    1. hi,

      danke soweit.

      was heisst distinct?

      geht das auch ohne join?

      mbg ska

      1. Hi,

        was heisst distinct?

        auf deutsch "distinkt". Alles Weitere erzählt Dir die Dokumentation Deines DBMS - welches immer das sein mag.

        geht das auch ohne join?

        Es geht ohne das Schlüsselwort, aber nicht ohne die Technik.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hallo,

          nun ja, ich würde das gerne genau verstehen am liebsten ohne joins.

          mein dbms ist mysql.

          Könntest du mir das näher legen im Falle von zwei anbietern bei einer plz.

          nehmen wir mal an firma1 und firma2 liefern beide nach plz 12345.

          mbg ska

          1. Hi,

            nun ja, ich würde das gerne genau verstehen am liebsten ohne joins.

            Du willst eine Verbindung der Daten aus mehreren Tabellen. Aber joins (Verbindungen) willst Du nicht nutzen.

            Gibt es dafür einen _echten_ Grund? Oder hast Du nur Angst vor dem Wort "join"?

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. hallo,

              bin mir nicht ganz sicher ob es anfragen gibt für die joins zwingend nötig sind, also man die Abfrage nich nur mit where und and bewältigen kann.

              falls es auch mit where und and geht ziehe ich diese zunächst vor!

              mbg ska

              Hi,

              nun ja, ich würde das gerne genau verstehen am liebsten ohne joins.

              Du willst eine Verbindung der Daten aus mehreren Tabellen. Aber joins (Verbindungen) willst Du nicht nutzen.

              Gibt es dafür einen _echten_ Grund? Oder hast Du nur Angst vor dem Wort "join"?

              cu,
              Andreas

              1. select a.id_anbieter, a.name
                from location, location_anbieter, anbieter
                where la.id_location = l.id_location and a.id_anbieter = la.id_anbieter
                where l.plz = 12345;  // and l.plz = 12345;

                geht das

                1. Moin!

                  select a.id_anbieter, a.name
                  from location, location_anbieter, anbieter
                  where la.id_location = l.id_location and a.id_anbieter = la.id_anbieter
                  where l.plz = 12345;  // and l.plz = 12345;

                  geht das

                  Das ist auch ein Join. Du gewinnst damit nichts. Außer, dass du die Tatsache verschleierst, dass es sich um einen Join handelt, und du die Join-Bedingungen mit den Filterbedingungen mischt - die ganze Sache also deutlich unübersichtlicher wird.

                  Von den Syntaxfehlern und fehlenden Aliassen mal zu schweigen.

                  - Sven Rautenberg

                  --
                  "Love your nation - respect the others."
                  1. Könntest du mal den join syntaktisch richtig aufschreiben ohne das Wort join.

                    mbg ska

                    1. Hello,

                      Könntest du mal den join syntaktisch richtig aufschreiben ohne das Wort join.

                      könntest du bitte deine Scheu davor ablegen und dich kurz mit den Grundlagen befassen? Glaub mir, mittelfristig erleichtert dir das einiges.

                      MfG
                      Rouven

                      --
                      -------------------
                      sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                      There's no such thing as a free lunch  --  Milton Friedman
                      1. Hallo,

                        bist du der rouven

                        http://tsdnet.ts.funpic.de/joins_leicht_gemacht.htm

                        hast du schön gemacht!

                        Wollte nur schnell zum Ziel kommen, denke aber das ich mich dem noch widmen werde. werden muss...

                        Danke soweit allen.

                        mit besten Grüßen

                        ska

                        1. Moin!

                          bist du der rouven

                          http://tsdnet.ts.funpic.de/joins_leicht_gemacht.htm

                          Das sollte mal offline genommen werden bzw. mit Redirect zur wahren Seite, Rouven. Sofern du die Seite dort platziert hattest.

                          - Sven Rautenberg

                          --
                          "Love your nation - respect the others."
                          1. Hello,

                            Das sollte mal offline genommen werden bzw. mit Redirect zur wahren Seite, Rouven. Sofern du die Seite dort platziert hattest.

                            du hast gut Reden. Ich hab die Seite da damals angelegt, damit sie bewertet werden konnte. Die Zugangsdaten, hmhmh, na ja, das könnte lustig werden...

                            MfG
                            Rouven

                            --
                            -------------------
                            sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                            Death is nature's way of telling you to slow down.
                    2. Moin!

                      Könntest du mal den join syntaktisch richtig aufschreiben ohne das Wort join.

                      Nein, weil das Unsinn ist. Ilja hat dir alles gegeben, was an Info notwendig ist.

                      - Sven Rautenberg

                      --
                      "Love your nation - respect the others."