[MySQL 4.1] Tabellen verknüpfen + Duplikate entfernen

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

  • [MySQL 4.1] Tabellen verknüpfen + Duplikate entfernen

    Hallo!

    Ich bin was Verküpfungen und Joins angeht nicht besonders fit und stehe wieder mal aufm Schlauch.

    Folgendes, vereinfacht dargestellt:

    Tabelle1
    id
    wert1

    Tabelle2
    id
    wert2


    Die id's sind die gleichen und werden verglichen, und ich möchte eine Abfrage, wo alle wert2 dem wert1 zugeordnet werden.

    Problem ist aber, dass wert1 in Tabelle1 mehrfach vorkommt. Ich möchte allerdings nur jeweils EINEN davon - egal welchen. Und dann eben jeweils wert2 zu dazu (und anhand id zuordnen).

    Wie geht das?

    Herzlichen Dank!

  • #2
    Bin kein mySQL Profi aber würde:
    SELECT DISTINCT
    probieren...

    oder
    max(wert1)
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar


    • #3
      Hi ...

      DISTINCT funzt leider nich - hab ich schon versucht.

      max(wert1) - hm wie genau sollte das gehen? Versteh's nich ganz

      danke!

      Kommentar


      • #4
        Was steht denn in den Tabellen genau drin? (Tabellenstruktur)
        Gibt es in Tabelle 2 eigentlich sowas wie:
        Tabelle1_id?
        "I don't want to belong to any club that would accept me as a member."

        Groucho Marx

        Kommentar


        • #5
          DISTINCT ging nicht, weil noch Felder mit ausgelesen werden, die sich immer unterscheiden.

          Die einzigen id's die drinne sind, dienen zur gegenseitigen Zuordnung und sind daher gleich - nur eben bei der einen Tabelle mehrfach.

          Habe es jetzt erstmal umgangen, indem ich die Felder, die sich immer unterscheiden, NICHT mit auslesen. Dann greift DISTINCT. Und dann hab ich noch ein 2. query angehängt.
          Damit gehts auch - eine Lösung würde mich aber dennoch interessieren.

          Ein DISTINCT, welches sich nur auf bestimmte Felder und nicht auf die ganze ROW bezieht, wäre sinnvoll. Gibts sowas? Hab nix gefunden :/

          Kommentar


          • #6
            Hm, soeben hat sich was an der SQL Struktur geändert, und ich hab ein neues Problem

            So siehts aus:



            Das sind die beiden Tabellen.

            Ich brauche folgendes:
            Alle Einträge aus der linken Tabelle, wo hauptwing = 1.
            Dann anhand der id der rechten Tabelle zuordnen und dort Feld "tag" rausholen. D.h. ally_id und AllianzID sind die Bezugsfelder.

            Jemand nen Ansatz?

            Kommentar


            • #7
              SELECT * FROM leftTBL
              LEFT JOIN rightTBL ON leftTBL.ally_id = rightTBL.AllianzID
              WHERE
              leftTBL.hauptwing = 1
              wär mein Vorschlag, aber wie gesagt, bin mies in mySQL
              "I don't want to belong to any club that would accept me as a member."

              Groucho Marx

              Kommentar


              • #8
                Hm... ging nich so recht.
                Habs jetzt so laufen, aber geht auch nur wegen dem DISTINCT:

                SELECT DISTINCT
                T1.ally_id,
                T1.farbe,
                T2.tag
                FROM
                diplomatie T1,
                ci_allianz T2
                INNER JOIN
                ci_allianz
                ON
                T1.ally_id = T2.AllianzID
                WHERE
                T1.hauptwing = 1

                Kommentar

                Lädt...
                X