was für SQL-Profis :)

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

  • was für SQL-Profis :)

    Hallo zusammen,

    trotz googlen und Suche-Funktion komm ich nicht recht voran.

    Ich stelle über eine Schlüsseltabelle Paarungen im Sport dar:

    Tabelle Schlüssel (Paarungen)

    id => primary key
    id_Mheim => foreign key ( Tabelle Mannschaft)
    id_Mausw => foreign key ( Tabelle Mannschaft) derzeit (Tabelle Mannschaft 2)

    also mit Werten
    1
    4
    7
    soll abbilden das Mannschaft 4 gegen Mannschaft 7 spielt

    Tabelle Mannschaft
    M_ID
    M_Name

    nun referenzieren (im Idealfall aber bei mir derzeit nicht) 4 und 7 auf die gleiche Tabelle Mannschaft

    select M_Name,M_Name from schluessel,mannschaft where id_Mheim = M_id and id_Mausw = M_id

    .. geht aber irgendwie nicht ( da sql nicht weiß das ich beim ersten M_Name die Referenz auf id_Mheim haben will und beim zweiten eben auf id_Mausw )


    ich löse das derzeit über zwei Mannschaftstabellen eine für die Heimmannschaften eine für die Auswärtsmannschaften
    ...dann ist die Zuordnung eindeutig

    Bin aber nicht wirklich glücklich damit - da ich die Daten in den Tabellen Mannschaft ( 1 und 2 ) ja redundant halte.

    Any Ideas ??
    ... hoffe das Problem ist rüber gekommen

    Gruß Tom

  • #2
    Re: was für SQL-Profis

    ... hoffe das Problem ist rüber gekommen
    nein, nicht wirklich.

    was hindert dich, einfach eine tabelle zwei mal zu JOINen? jeweils mit nem alias ... ?

    wodrum gehts?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hallo

      mich hindert daran ... das ich wohl gerade ein wenig (oder auch viel) auf dem Schlauch stehe

      wie soll ich denn das sql statement

      select M_Name,M_Name from schluessel,mannschaft where id_Mheim = M_id and id_Mausw = M_id
      ( bringt ja nicht den gewünschten Effekt )


      abändern, das es tut was ich will - also mir die beiden Mannschaftsnamen anzeigt.

      Gruß Tom

      Kommentar


      • #4
        Code:
        SELECT m1.name heim, m2.name gast
        FROM   relation_table r
        JOIN   mannschaft m1
        ON     r.id_heim = m1.id
        JOIN   mannschaft m2
        ON     r.id_gast = m2.id
        irgendwie so ....
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Danke für Deine Mühe

          SELECT m1 .name heim, m2 .name gast
          FROM relation_table r
          JOIN mannschaft m1
          ON r.id_heim = m1.id
          JOIN mannschaft m2
          ON r.id_gast = m2.id

          aber das will ich ja gerade nicht ( mit zwei Mannschaftstabellen habe ich das Problem ja auch schon gelöst ). Würde es gerne mit nur einer Mannschaftstabelle darstellen (da die Tabellen sonst redundant wären)


          Relation-Table

          fields
          -----
          id_home_Team
          id_away_Team
          -----
          values (3 Datensätze)
          1 2
          1 3
          2 3
          _______________________

          M-Table

          fields
          -------
          id
          name
          ---------
          values ( 3 Datensätze)
          1 Team1
          2 Team2
          3 Team3

          und mein sql statement soll nun im Ergebnis 3 rows auswerfen

          Team1,Team2
          Team1,Team3
          Team2,Team3

          kann ich das nun über ein sql-statement realisieren ?

          Gruß Tom

          Kommentar


          • #6
            Original geschrieben von pander

            kann ich das nun über ein sql-statement realisieren ?

            Ja

            Kommentar


            • #7
              Hallo asp2php,

              JA - ist schon mal eine Antwort die mir sehr gut gefällt !
              Wenn Du noch so nett wärest mir zu verraten wie

              Gruß Tom

              Kommentar


              • #8
                Original geschrieben von pander

                Wenn Du noch so nett wärest mir zu verraten wie
                wieso verraten? steht schon da

                Kommentar


                • #9
                  schau dir noch einmal die namen der beiden tabellen an, die hinter demJOIN stehen ... fällt dir irgendetwas auf?
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    Danke Ihr BEIDEN !!

                    Wer lesen kann ist ... usw

                    Ihr habt mir sehr geholfen

                    Funktioniert wunderbar und die überflüssige Tabelle liegt schon im Müll

                    Kommentar


                    • #11
                      Und das Problem ... ?! ... die schriebst "was für SQL-Profis" ... das hier sind Grundlagen ... !
                      carpe noctem

                      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                      Kommentar

                      Lädt...
                      X