2009-11-14 9 views
5

Ich benutze SQLite-Datenbank zum Speichern von Daten. Ich habe drei Tabellen: Invoice, InvRow, Invdetails.Wie lösche ich Daten aus mehreren Tabellen in sqlite?

relationsip zwischen den Tischen sind:

Invoice.Id = InvRow.InvId 
InvRow.Id = Invdetails.RowId 

I verwandte Einträge aus drei Tabellen mit einer einzigen Abfrage löschen müssen. Wie kann ich das machen? Irgendwelche Hilfe?

Antwort

4

Alex B bietet eine gute Antwort, aber es hat nicht für mich funktioniert. zu viel Arbeit gerade jetzt.

Leider musste ich das Löschen in zwei Anweisungen machen, aber es hat gut geklappt. Ich habe zwei Tabellen, Filme und movie_providers, movie_providers ist eine Join-Tabelle, die angibt, welcher Anbieter meinen Film zeigt.

Ich wollte: DELETE FROM movies, movie_pproviders WHERE movie.id = movie_providers.movie_id AND [my constraint]

hatte aber zwei Schritte zu tun

DELETE FROM movies WHERE [my constraint] 
DELETE FROM movie_providers where movie_id NOT IN (SELECT DISTINCT id FROM movies) 

Dies setzt voraus, i Konsistenz vor zwischen Filmen und movie_providers hatte. Wenn nicht, habe ich einfach Konsistenz geschaffen.

+0

das ist eine ziemlich gute Lösung – Indio

Verwandte Themen