Entwickler-Ecke

Datenbanken - Kompliziertes Update Statement..


MarkusAlexander - Do 11.12.03 13:34
Titel: Kompliziertes Update Statement..
Ich habe große Probleme mit meinem Update Statement.
Dies soll 2 Tabellen berücksichtigen.

-Vertrag
- Auto

beide Tabellen enthalten das Feld Kennzeichen über das ich verknüpfen will.

Ich möchte in der Tabelle Auto die Entity "verfügbar" auf 1 setzen.

Ich kenne aber nur den Primärschlüsselwert "Mietnr" aus der Tabelle Vertrag..

Also so hab ich mir´s vorgstellt.. es funktioniert nur nicht:

Update auto set verfuegbar = '1' where Kennzeichen =(select Kennzeichen from vertrag where MietNr= '1');

Wer weiß schnellen Rat?!?!


CenBells - Do 11.12.03 14:07

Hallo,

was funktioniert denn daran nicht? Das SQL-Statement sieht eigentlich ganz richtig aus. Gibt es eine Fehlermeldung? Und um welche DB handelt es sich denn?

Gruß
Ken


MarkusAlexander - Do 11.12.03 14:15

es handelt sich um MYSQL.

Ich bekomme die Fehlermeldung
You have an error near select Kennzeichen..

Verträgt sich eine Unterabfrage denn mit dem Update nicht?


CenBells - Do 11.12.03 14:22

Hallo,

eine unterfrage in einem Update ist normalerweise kein Problem. Du musst aber nochmal in der MySQL doku nachlesen.
Ich meine mich daran zu erinnern, daß MySQL in versionen kleiner 4 sogenannte nested Statements nicht verarbeiten kann.

Gruß
Ken


UGrohne - Do 11.12.03 15:13

Laut neuester Entwickler-Ausgabe kann mySQL erst ab Version 4.1 SubSelects verarbeiten, wenn ich das in der kurzen Zeit nicht falsch verstanden habe


Andi1982 - Do 11.12.03 15:38

Da würd ich mir garnicht gross den Kopf darüber zerbrechen, in DB2 wärs ja ganz einfach, aber in deinem fall würde ich das kennzeichen anhand der MietNr in eine Hostvariable selectieren und dann das update ausführen.

Also in zwei SQLs verteilen....