SQL Abfrage über mehrere Tabellen

Matterdron

Neuer Benutzer
Beiträge
1
Hallo ich muss eine Abfrage über zwei Tabellen machen

ADRAKTE und ADRESS

In der ADRESS sind die Adressen mit einer Adressnummer versehen Spalte ADRNR

Diese ADRNR wird auch in der Tabelle ADRAKTE in den Spalten ADRNR, PROZBV und VERTRETER verwendet

Meine aktuelle Abfrage lautet:

SELECT *

FROM Adress

WHERE Adrnr NOT IN

(SELECT ADRAKTE.ADRNR, ADRAKTE.prozbev, ADRAKTE.VERTRETER FROM ADRAKTE);

Allerdings liefert mir diese Abfrage nicht die gewünschten Ergebnisse

SELECT *

FROM Adress

WHERE Adrnr NOT IN

(SELECT ADRNR FROM ADRAKTE);

Bringt mir zwar Ergebnisse, aber nicht eine exakte Auswertung, weil die Werte von der Spalte ADRNR auch noch in den Spalten PROZBEV und VERTRETER vorkommen können.

Wie schreibe ich dann die Abfrage richtig um, damit das auch alle Spalten einbindet?

Ich bin ein Anfänger was SQL Abfragen angeht. 

Wenn die Abfrage dann klappt, soll das Ergebnis der Abfrage auch noch gelöscht werden.
 
Werbung:
als Schnellschuß: Du solltest das Subselect, welches jetzt 3 Spalten liefert, in ein UNION umschreiben, welches nur eine Spalte liefert. Das kannst Du dann in der Form mit dem NOT IN so verwenden.

Das löschen ist dann der nächste Step ...
 
Werbung:
Um mal kurz zu zeigen was akretschmer meint:
Code:
SELECT *
FROM Adress
WHERE Adrnr NOT IN (
SELECT ADRAKTE.ADRNR FROM ADRAKTE
UNION
SELECT ADRAKTE.prozbev FROM ADRAKTE
UNION
SELECT ADRAKTE.VERTRETER FROM ADRAKTE);
Das könnte allerdings immernoch unvollkommen sein wenn Adrnr nur Bestandteil von z.B. prozbez ist und nicht exakt dem Wert in der Spalte entspricht. Dann müsstest du anders prüfen.
 
Zurück
Oben