![]() |
Per SQL Datensätze löschen
Hallo SQL Experten,
ich habe zwei Tabllen in einer Datenbank und möchte jetzt die aus der 1. Tabelle löschen, die auch in der 2. Tabelle vorkommen. Der Primary key ist ein zusammengesetztes Feld aus den Feldern Woche und Nr. Ich habe es wie folgt gelöst:
SQL-Code:
Das funktioniert auch, aber ich suche noch eine Lösung ohne die Konkatenierung der beiden Felder. (Aber auch ohne Veränderung der Tabellenstruktur. :mrgreen: )
DELETE FROM EXPORT
WHERE Woche || NR IN (SELECT e.WOCHE || e.NR FROM EXPORT e LEFT JOIN EXPORT1 e1 ON ((e.WOCHE = e1.WOCHE) AND (e.NR = e1.NR))) |
Re: Per SQL Datensätze löschen
Hallo Spocky,
wenn ich mich nicht täusche, kann man das IN immer nur auf eine Spalte in der WHERE-Klausel anwenden. Versuche es mal so:
SQL-Code:
Außerdem funktioniert auch die Verwendung der Aliase nicht immer.
DELETE FROM EXPORT
WHERE Woche IN (SELECT e.WOCHE FROM EXPORT e LEFT JOIN EXPORT1 e1 ON ((e.WOCHE = e1.WOCHE) AND (e.NR = e1.NR))) AND NR IN (SELECT e.NR FROM EXPORT e LEFT JOIN EXPORT1 e1 ON ((e.WOCHE = e1.WOCHE) AND (e.NR = e1.NR))); |
Re: Per SQL Datensätze löschen
versuche mal select distinct
nicht getestet
SQL-Code:
delete from export
where woche || nr not in (select distinct e.woche || e.nr from export e left join export1 e1) |
Re: Per SQL Datensätze löschen
Hallo,
danke für die Antworten. @r_kerber: so habe ich es mir zuerst auch gedacht, aber die Bedingung wird jetzt erfüllt, wenn Woche und Nr in beiden Tabellen sind, nicht aber unbedingt in demselben Datensatz!? @kiar: Mir geht es ja darum eine Lösung zu finden, die ohne || auskommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz