1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SQL Abfrage über mehrere Tabellen

Dieses Thema im Forum "Oracle" wurde erstellt von Matterdron, 1 November 2018.

  1. Matterdron

    Matterdron Neuer Benutzer

    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.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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 ...
     
  3. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden