SQL Abfrage: Übereinstimmungen finden
Chris
- datenbank
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
Hi,
es gibt an die Problematik mindestens mal zwei Herangehensweisen:
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)
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
Vielen Dank!
Die INNER JOIN Geschichte hat auf Anhieb funktioniert.
Chris
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