Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Per SQL Datensätze löschen (https://www.delphipraxis.net/7911-per-sql-datensaetze-loeschen.html)

MrSpock 24. Aug 2003 11:31


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:
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)))
Das funktioniert auch, aber ich suche noch eine Lösung ohne die Konkatenierung der beiden Felder. (Aber auch ohne Veränderung der Tabellenstruktur. :mrgreen: )

r_kerber 24. Aug 2003 12:35

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:
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)));
Außerdem funktioniert auch die Verwendung der Aliase nicht immer.

kiar 24. Aug 2003 15:15

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)

MrSpock 24. Aug 2003 16:13

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