MySQL, Datensätze löschen
Tom
- datenbank
Hello,
wie lösche ich möglichst mir einem Statement alle Datensätze einer Tabelle, deren Feldwert von "Name" in einer anderen Tabelle vorkommt.
Oder wie markiere ich diese Datensätze?
Ich habe in dem System nur MySQL 3.23.55 zur Verfügung.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
wie lösche ich möglichst mir einem Statement alle Datensätze einer Tabelle, deren Feldwert von "Name" in einer anderen Tabelle vorkommt.
Oder wie markiere ich diese Datensätze?
Ich habe in dem System nur MySQL 3.23.55 zur Verfügung.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Abfragen kannst du z.b., wenn du einen JOIN verwendest. Es gibt LEFT JOIN, INNER JOIN und RIGHT JOIN je nachdem was du verwendest. Soweit ich weiss, kann mysql in der aktuellen Version noch keine unterabfragen (ala //select * from a where id in (select id from b)// ). wird von daher ein bisschen blöd. oder du baust es in die where-klausel ein, das ist aber unübersichtlicher code find ich, falls du es später debuggst.
Hier ein Beispiel mit join ist leicht anzupassen:
select tbla.id, tbla.name, tblb.gruppe
from tbla
inner join tblb on tbla.id = tblb.id
where tblb.gruppe = 'Administrator'
Hello,
Abfragen kannst du z.b., wenn du einen JOIN verwendest.
Ein Select nützt mir nichts. Ich benötige entweder ein "delete ...join" oder ein "update ... join" oder sowas ähnliches.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Abfragen kannst du z.b., wenn du einen JOIN verwendest.
Ein Select nützt mir nichts. Ich benötige entweder ein "delete ...join" oder ein "update ... join" oder sowas ähnliches.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Nu ich dachte, du brauchst beide Methoden. Hab gegoogelt, mysql kann ab v4.1 unterabfragen. das heisst > alternative.
ich hatte so ein problem bereits unter javaserverpages.
Ich hab einfach die werte in ein Array geschrieben und einfach per Schleife eingebunden so etwa:
delete * from table where id in (1,2,3,4,5)
die zahlen 1 bis 5 fragst du in einer anderen Abfrage zuvor ab.
Danach baust du eine Schleife und manipulierst den String.
Der einzige Nachteil ist Performance, je nachdem wie die Umgebung und der Code ist, aber es sollte normal gar nicht zu spüren sein.
Falls du Hilfe brauchst, post mal den Sourcecode.
mfg
echo $begrueszung;
wie lösche ich möglichst mir einem Statement alle Datensätze einer Tabelle, deren Feldwert von "Name" in einer anderen Tabelle vorkommt.
Ich habe in dem System nur MySQL 3.23.55 zur Verfügung.
Tja, da wird dir wohl, denke ich, nichts weiter übrigbleiben als unter den folgenden Ansätzen den deines geringsten Missfallens zu wählen:
Die ersten drei "Tipps" sind im Kapitel 1.7.4.1 des Handbuchs deiner Version zu finden, den 4. fand ich in den Google-Groups
echo "$verabschiedung $name";