Chris: SQL Abfrage: Übereinstimmungen finden

Hallo,

bin noch immer Newbie was SQL angeht und komme gerade bei folgendem Problem nicht weiter:

Ich habe zwei Tabellen mit jeweils einer Email Adresse und einem Passwort als Felder.

Nun möchte ich alle Felder finden, bei denen die Emailadressen beider Tabellen gleich sind, die Passwörter aber unterschiedlich.

Beispiel

Tabelle Kontakte
1. email = aaa@bbb.de, passwort = 12345
2. email = bbb@ccc.de, passwort = 11111

Tabelle Kunden
1. email = aaa@bbb.de, passwort = 12345
2. email = bbb@ccc.de, passwort = 22222

gefunden werden sollte hier der jeweils zweite Datensatz, weil sich diese in den Tabellen unterscheiden. Ich möchte dann den Datensatz "kunden" anpassen, brauche also als Ergebnis das Passwort aus Tabelle "kontakte".

Könnt Ihr mir weiterhelfen?
Ich danke Euch sehr,
der Chris

  1. Hi,

    es gibt an die Problematik mindestens mal zwei Herangehensweisen:

    1. Subselect (muss das DBMS unterstützen, hängt z.B. bei MySQL stark von der Version up)
      Ansatz: Man frage alle Sätze aus Tabelle Kontakte ab, bei denen de Sätze der Tabelle Kunden ein bestimmtes Kriterium erfüllen, etwa so:
      SELECT passwort FROM kontakte ko
      WHERE passwort <> (SELECT passwort FROM kunden ku WHERE ku.email = ko.email)

    2. Join
      Ansatz: Man joint beide Tabellen zusammen auf Basis der gleichen eMail-Adresse und filtert dann die Sätze mit abweichenden Passwörtern.
      SELFHTML: Einführung Joins
      SELFHTML: Fortgeschrittene Jointechniken

    Etwa:
    SELECT ko.passwort
    FROM
    kontakte ko
    INNER JOIN
    kunden ku
    ON ku.email = ko.email
    WHERE ku.passwort <> ko.passwort

    MfG
    Rouven

    --
    -------------------
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. Vielen Dank!

      Die INNER JOIN Geschichte hat auf Anhieb funktioniert.

      Chris

  2. Hallo

    Könnt Ihr mir weiterhelfen?

    Was hast du denn schon probiert?

    Versuch doch mal die beiden Tabellen über einen INNER JOIN auf das Attribut email zu verknüpfen und füge dann eine WHERE-Bedingung ein, um die Ausgabe auf diejenigen Datensätze einzuschränken, bei denen das Passwort nicht übereinstimmt.

    Viele Grüße,
    Thomas