Datenbank bereinigen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Datenbank bereinigen

Beitrag von Steffan »

hallo zusammen,

ich habe eine CD-Datenbank mit verschiedenen Tabellen.
Tabelle: DISCS
Felder: DiscID, ArtistID, ...
Tabelle: ARTISTS
Felder: ArtistID, ArtistName, ...
...

Folgender Fall:
die letzte CD eines bestimmten Interpreten wird gelöscht
Dann existiert der Interpret immer noch in der Tabelle ARTISTS.
Ich benötige also eine SQL-Befehl, der alle Datensätze aus der Tabelle ARTISTS löscht, deren ID NICHT in Tabelle DISCS vorkommt.

Das Anzeigen dieser Datensätze funktioniert mit:

Code: Alles auswählen

SELECT ArtistID 
FROM ARTISTS 
GROUP BY ArtistID 
HAVING (
	SELECT COUNT (*) 
	FROM DISCS 
	WHERE DISCS.ArtistID = ARTISTS.ArtistID
)=0

Allerdings bekomme ich es nicht hin diese Datensätze zu löschen.
Weiß jemand Rat?

Danke,
Steffan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datenbank bereinigen

Beitrag von komma4 »

ungetestet:

Code: Alles auswählen

DELETE 
FROM ARTISTS AS ARTISTS
WHERE ARTISTS."ArtistID" NOT IN 
   ( SELECT DISTINCT DISCS."ArtistID"  FROM DISCS )
Viel Erfolg !
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Re: Datenbank bereinigen

Beitrag von Steffan »

Besten Dank, hat funktioniert!

Schönen Sonntag noch,
Steffan
Antworten