AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Per SQL Datensätze löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Per SQL Datensätze löschen

Ein Thema von MrSpock · begonnen am 24. Aug 2003 · letzter Beitrag vom 24. Aug 2003
Antwort Antwort
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#1

Per SQL Datensätze löschen

  Alt 24. Aug 2003, 12:31
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. )
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Per SQL Datensätze löschen

  Alt 24. Aug 2003, 13:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: Per SQL Datensätze löschen

  Alt 24. Aug 2003, 16:15
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)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Per SQL Datensätze löschen

  Alt 24. Aug 2003, 17:13
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.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz