Deleten eines Datensatzes

Hieu123

Benutzer
Beiträge
11
Im Anhang ist das Relationenmodell zu finden es geht grob darum das man einen Kühlschrank hat mit Tablettes und auf diesen Tablettes sind Probem ich möchte halt versuchen die Probem von einem bestimmten Tablett zu löschen habe das ganze so probiert

delete * from sample from place as pl join sample as s on pl.sampleid = s.sampleid join tray as t on pl.trayid = t.trayid where t.trayid = 1;

aber das funktioniert nicht. Könnte mir vielleicht jemand sagen wo mein Fehler liegt?
upload_2020-11-15_19-20-7.png
 

Anhänge

  • frage.PNG
    frage.PNG
    127 KB · Aufrufe: 1
Werbung:
Ein Komma aller 7cm erhöht die Lesbarkeit gewaltig.

Dein SQL ist mehrfach falsch, ein Delete benötigt keine Spaltenliste und gestattet nur 1 FROM.
Kannst Du ein SELECT bauen, welches die zu löschenden Datensätze liefert? Das wäre der erste Ansatz.
 
select * from sample join place on sample.sampleID = place.sampleid join tray on place.trayID = tray.trayID where tray.trayid = 1;

das wäre es
 
so, damit sind wir ja schon mal weiter ...

  • ändere das SELECT * zu select SampleID ...
  • DELETE from ... WHERE SampleID in (die Abfrage von oben)

*untested*
 
meinst du so?
delete sampleID from sample join place on sample.sampleID = place.sampleid join tray on place.trayID = tray.trayID where tray.trayid = 1;
 
Werbung:
Was ist denn Dein Problem? Siehe #4. Zuerst stellst Du die Abfrage so um, daß da nur eine Liste mit den zu löschenden ID's rauskommt. Dann DELETE FROM deine_tabelle WHERE ID IN (hier die Abfrage, die die zu löschenden ID's liefert).
 
Zurück
Oben