[MySQL 3.23.X] n-m Beziehung

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

  • [MySQL 3.23.X] n-m Beziehung

    Hallo,
    ist es mit mysql alleine möglich folgendes zu lösen :


    n:m -Beziehung

    tabelle1
    id1

    link
    id1
    id2

    tabelle2
    id2

    Jetzt ist folgendes eingetragen:

    tabelle1
    1
    2

    link
    1 1
    2 2
    2 3


    tabelle2
    1
    2
    3

    1.also der erste datensatz aus tablle 1 nur mit einem datensatz aus tabelle2 über die link-Tabelle verknüft.
    2.der zweie Datensatz aus tablle1 ist mit 2 Datensätzen aus tabelle zwei über die link-Tabelle verknüft.

    Als Ergebnis möchte ich nur die Datensätze die den Kriterien aus 2 entsprechen.

    danke für jede hilfe

    Mike

  • #2
    join ist dein Freund. Doch ich bin überrascht, warum du die Frage stellst, weil
    durch das Design müsste dir doch bewusst sein, wie du an die Daten kommst

    Kommentar


    • #3
      Danke für die flotte antwort. Ich weiß , wie ich die Daten mit einem join abfragen kann, das Problem ist nur die Bedingung, dass ich nur die Datensätze haben möchte, bei denen es 2 Datensätze in tabelle 2 gibt.

      Kommentar


      • #4
        was hast du bisher schon versucht (T-SQL) ?

        Kommentar


        • #5
          Hi,
          du hast recht. Sokann man sich auch wirklich nix vorstellen.
          Also, nochmal so :
          Hans hat eine Wohnung in Bochum. Peter hat eine Wohnung in Bochum und Essen.

          namen

          NameID | Name
          1 | Hans
          2 | Peter

          staedte

          StadtID | Stadt
          1 | Bonn
          2 | Bochum
          3 | Essen


          link
          NameID| StadtID
          1 | 2
          2 | 2
          2 | 3

          Ich möchte als Ergebnis nur die Namen, die in Bochum und Essen eine Wohnung haben.

          Das habe ich probiert:

          SELECT Name,Stadt FROM namen,link,staedte WHERE
          namen.NameID = link.NameID AND link.StadtID = staedte.StadtID
          AND (staedte.Stadt = "BOCHUM" AND stadte.Stadt="Essen");

          das liefert garnichts.

          Nehme ich folgendes, kriege ich auch Hans angezeigt
          staedte.Stadt = "BOCHUM" OR stadte.Stadt="Essen"

          und auch mit ausdruck in ("Bochum"," Essen" ) kriege ich den Datensatz mit Hans

          Mike

          Kommentar


          • #6
            Hi,
            bin immer noch nicht drauf gekommen.
            Ist die Frage zu trivial oder geht es wirklich nicht mit MySQL ?

            bis dann
            Mike

            Kommentar


            • #7
              dat forum is fürn arsch. die tuts beweisen es!

              Kommentar


              • #8
                ich habe eigentlich die Lösung schon, aber durch deine Drängelei habe ich
                noch zurückgehalten, nun komme ich wieder rein und sehe das, tja ...
                Nur weil man dir das Ergebnis deiner Wünsche nicht auf dem silbernen
                Tablett serviert, beschimpfst du das ganze Forum

                Kommentar


                • #9
                  Da hat sich entweder jemand einen Scherz erlaubt, oder mein Passwort gehackt. Das letzte Posting Könnte von jemandem aus meinem Umfeld sein, da ich meine Passwörter speichere.
                  Aber das habe ich definitiv nicht geschrieben!
                  Ich werde das klären. Und ich entschuldige mich dafür in aller Form!

                  Kommentar


                  • #10
                    kommt schon, die Masche zieht nicht, ist ziemlich alt

                    OK, bin nicht so, aber endgültige Lösung gibts nicht, du musst schon seblst
                    dahinter steigen.

                    Um Personen, die mehr als ein Wohnort haben, kannst du mit:

                    select a.`name`from `name` a inner join `link` b on a.nameid=b.nameid
                    group by a.`name` having count(a.`name`) > 1

                    Kommentar

                    Lädt...
                    X