URL: https://www.overclockers.at/coding-stuff/mysql-datenstze-lschen_226386/page_1 - zur Vollversion wechseln!
Moinsen
Hab schon ewig und 3 Tage nix mehr mit SQL gemacht und stehe grad vor nem Problem für das ich irgendwie keine Lösung finde.
Ich versuche für unsere Gilde die DKP ein wenig aufzuräumen.
Nun habe ich einige alte Raids gelösche. Leider wurden die Items und die Punkte nicht entsprechend aktualisiert.
Nun versuche ich das mittel SQL Befehlen zu beheben.
Folgendes Szenario:
Tabelle A enthält die Items
Tabelle B die Raidnamen und IDs
Nun möchte ich folgendes erreichen. Er soll alle Items aus Tabelle A löschen für die es in Tabelle B keine Raid gibt.
Also alles aus Tabelle A löschen, wenn für den Wert Raidid in Tabelle B kein entsprechender Wert für Raidid existiert.
Ich hoffe es kann mir jemand helfen.
Vielen Dank im Vorraus.
mfg
delete from table_a where not exists(select * from table_b where table_a.id = table_b.id)
ist bei mir auch schon bisl her aber so müssts doch funken
Dein letzter Satz direkt in normales SQL umgesetzt würde ca. so aussehen:
delete from a where not exists (select * from b where a.raidid = b.raidid)
Keine Ahnung, ob MySQL das inzwischen auch kapiert.
Code: SQLDELETE FROM `eqdkp_set_items` WHERE not exists (select * from `eqdkp_set_raids` where 'eqdkp_set_items.raid_id' = 'eqdkp_set_raids.raid_id')
versuch mal
Code: SQLDELETE FROM eqdkp_set_items WHERE id NOT IN (select DISTINCT id from eqdkp_set_raids)
danke. Werd ich morgen testen. Denke mal mit nem klaren Kopf rangehn lösst den einen oder anderen Knopf
Code: SQLdelete FROM eqdkp_nonset_items WHERE raid_id NOT IN (select DISTINCT raid_id from eqdkp_nonset_raids)
Freut mich. Ist eigentlich auch die wörtliche Übersetzung deines Wunsches in SQL: Lösche alles, für das es in raids keine id gibt
Sollte eigentlich per Constraints abgesichert sein damit solche Inkonsistenzen gar nicht erst entstehen.
Sollte, ist es aber oft nicht. MYISAM Tabellen können (bzw. konnten) das nicht mal, iirc.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025