![]() |
Datenbank: Access • Zugriff über: ADO
Frage zu SQL-Statement
hi
ich hab en db in dieser form: id, ParentID, Value daraus erstelle ich so "Bäume" nun möchte ich alle einträge löschen, wo es die Zahl, die in ParentID drinsteht nicht mehr in der id spalte gibt. geht das so?
SQL-Code:
und nochwas:
DELETE FROM all WHERE (SELECT Count(ID) FROM all WHERE ID = ParentID) = 0
wenn ich zb 5 gleiche (vom design her) tabellen hab, wie kann ich die zusammenführen? so?
SQL-Code:
mfg gereon
INSERT INTO all VALUES (SELECT * FROM tbl1, tbl2, tbl3, tbl4)
|
Re: Frage zu SQL-Statement
Zitat:
SQL-Code:
Aber wie gesagt: Ich bin nicht sicher was Du meinst. :ParentID ist hier ein Parameter, den du noch setzen musst. Allerdings würdest du auf diese Weise nur einen Datensatz löschen, nämlich den Parent des Datensatze, von dem die ParentID stammt. Willst Du das?
DELETE FROM all WHERE ID = :ParentID
zu 2. je nach datenbank - in Access geht das mit UNION:
SQL-Code:
SELECT * FROM tbl1 UNION SELECT * FROM tbl2 UNION SELECT * FROM tbl3 ...
|
Re: Frage zu SQL-Statement
also, das 2te sieht gut aus, thx
zum ersten: ich hab ne baumstruktur, zb:
Delphi-Quellcode:
das ist immer parentid:id
0:1
/ \ 1:2 1:3 | / \ 2:4 3:5 3:6 nun fällt zb. 1:3 weg (wird gelöscht), und ich will alle unterpunkte löschen. am besten direkt auch so, das auch unterpunkte von 3: bzw 3:6 gelöscht werden... |
Re: Frage zu SQL-Statement
Setz einfach einen Fremdschlüssel auf ParentId, der auf ID verweißt und schalt cascade delete ein.
Dann werden alle Sätze gelöscht, die auf die von dir gelöschte Referenz verweisen. |
Re: Frage zu SQL-Statement
moment mal, was bitte?
hört sich gut an, könntest du das event mal kleinschrittig erklären? bin noch net so routiniert im umgang mit db's ;) |
Re: Frage zu SQL-Statement
Geh mal in dein Access und lass dir die Beziehungen anzeigen (unter Extras).
Dann fügst du dort 2 mal deine Tabelle ein und ziehst von der einen das Feld ParentID auf ID der anderen (selben) Tabelle. Dann markierst du den Haken "Mit referenzieller Integrität" und "Löschweitergabe an Detailsatz". |
Re: Frage zu SQL-Statement
ja nee, dann löscht er ja die einträge in tbl1 wenn die id in tbl2 flöten geht, wenn ich das richtig verstanden hab, das soll aber in der selben tabelle sein.
|
Re: Frage zu SQL-Statement
Ich schrieb Dann fügst du dort 2 mal deine Tabelle ein und ziehst von der einen das Feld ParentID auf ID der anderen (selben) Tabelle. Also, ein Verweis auf sich selber! :roll: |
Re: Frage zu SQL-Statement
ok, ich werds zu hause mal probieren.
wenn ichs net hinkriege meld ich mich nochmal... |
Re: Frage zu SQL-Statement
ich kapier das net
kannst du mir event mal ein beispiel schicken? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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