ska: aus einem feld mehrere Werte verwerten

Sehr geehrtes Forum,

Also über die plz die mann in ein Formular angibt solen alle für diese Region zutreffenden Anbieter angezeigt werden!

mein erster Ansatz.

ich habe zwei tabellen(mysql) die ich miteinander verknüpfen will.

plz

plz
ort
anbieter

tarif

anbieter
weitere daten zum anbieter

mein Problem besteht darin das in der ersten tabelle plz unter anbieter mehrer nummern stehen sollen. z.B. so 1,2,6,44,5
und in der tabelle tarif steht im feld anbieter aber immer nur eine nummer z.B. 1 , in den nächsten Spalten dann halt weitere Daten um anbieter 1. Nächste Zeile steht halt die Nr. 2 bei anbieter.

Im Endeffekt sollen alle Anbieter die in der tabelle plz unter anbieter aufgezählt werden aus der tabelle anbieter über Ihre Nr. in einer Abfrage gefundne (assoziert) werden.

Ist die Abfrage auf diese Weise möglich.

Ich hoffe das ist verständlich.

ska

  1. Hi,

    mein Problem besteht darin das in der ersten tabelle plz unter anbieter mehrer nummern stehen sollen. z.B. so 1,2,6,44,5

    das sind nicht mehrere Nummern, sondern eine einzige Zeichenkette: Daten in einer Tabellenzelle sind atomar.

    Ist die Abfrage auf diese Weise möglich.

    Nein. Normalisiere Dein Datenbank-Layout zu einer 1:n-Beziehung zwischen PLZ/Ort und Anbieter.

    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. hi,

      ok

      also werden ich der tabelle plz weitere anbieterspalten hinzufügen, anbieter_2 usw. und jene halt über die eine die jeweils nur in einem feld stehen darf mit der anbieter nummer aus der tabelle anbieter verbinden.

      könnte das so klappen?

      mbt ska

      1. Hello,

        könnte das so klappen?

        ja, aber es wäre qualitativ ähnlich schlecht wie vorher.
        1:n heißt eine Spalte in Tabelle 1, eine Spalte in Tabelle 2, Datensätze zwischen Tabellen sind durch einen übereinstimmenden Eintrag verbunden. Wenn ein Anbieter in mehreren PLZ-Gebieten aktiv ist, dann steht da
        PLZ    Anbieter
        12345  1
        12345  2
        12346  1
        12347  1
        12348  2

        MfG
        Rouven

        --
        -------------------
        sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
        Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
        1. hi,

          das wären sehr viele Datensätze mehr,

          1. Hello,

            das wären sehr viele Datensätze mehr,

            ketzerische Frage: UND? Das ist die Aufgabe eines DBMS, da dürfen Millionen von Sätzen rein...

            MfG
            Rouven

            --
            -------------------
            sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
            Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
            1. hi,

              ja das ist wohl wahr, da können eine menge Datensätze hinein, aber die muss ich auch alle darein schreiben und es wird unübersichtlicher.

              z.B ich habe
              plz

              plz ort anbieter anbieter2

              und

              tarif

              nr name tarifname etc.

              wie muss jetzt die Abfrage lauten umd die nummern in anbieter und anbieter2 mit denen aus nr zu assozieren.

              diese Abfrage bringt mir nur einen anbieter.
              select plz,ort,tarifname from plz,tarif where plz.anbieter = tarif.nr;

              wie kann ich alle anbieter bekommen?

              mbg ska

              1. hallo,

                konkreter

                also ich bekomme quasi nur die plz übergeben, durch diese muss ich dann herrausfinden welche anbieter infrage kommen.

                und das möchte ich so gestalten das in der zeile der plz alle anbieter über nummer mit in der zeile stehen.

                wie mach ich überhaupt so eine Abfrage:

                checke in wievielen spalten der zeile 10225 das Wort anbieter vorkommt und welche nr darin stehen?

                ist das oder so ähnlich möglich?

                und danach muss ich noch die nummern raussuchen in der tabelle tarif.

                mbg ska

                1. Mahlzeit,

                  checke in wievielen spalten der zeile 10225 das Wort anbieter vorkommt und welche nr darin stehen?

                  ist das oder so ähnlich möglich?

                  Ich kann mich Cheatah und Rouven nur anschließen: normalisiere Dein DB-Layout, um vernünftige n:m-Beziehungen abbilden zu können ... dann sind auch die von Dir gewünschten Abfragen kein Problem.

                  MfG,
                  EKKi

                  --
                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              2. Hi,

                ja das ist wohl wahr, da können eine menge Datensätze hinein, aber die muss ich auch alle darein schreiben

                also keine Veränderung zum bisherigen Zustand.

                und es wird unübersichtlicher.

                Nicht die Spur. Im Gegenteil.

                z.B ich habe
                plz ort anbieter anbieter2

                Dieses DB-Layout verdient mit Fug und Recht die Bezeichnung "defekt" - es sei denn, jeder Ort hat immer genau zwei Anbieter.

                wie muss jetzt die Abfrage lauten

                Zunächst beschäftige Dich bitte mit der Thematik des Datenbank-Layouts. Normalisierung ist hierbei eines der wichtigsten Stichworte. Solange Dein DB-Layout defekt ist, brauchst Du über Abfragen gar nicht erst nachzudenken - das lohnt nicht. Sie sind entweder extrem umständlich, inperformant, oder sogar unmöglich.

                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
  2. Hello,

    Dein Problem ist der fehlende Plan für das Datenmodell.

    siehe auch https://forum.selfhtml.org/?t=162588&m=1058082

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)