# Update über zwei Tabellen



## kesnw (4. April 2004)

*DRINGEND Update über zwei Tabellen*

Wie stelle ich es an, dass ich in der where Klausel über 2 Tabellen verknüpfe? In etwa so:


```
UPDATE points as p, admin as a SET p.new = '2' where p.L_ID = 'rva01' AND p.owner != 'name' AND p.owner = a.user AND a.superuser = '1'";
```

Fehler:
Error in query: UPDATE points p, admin a SET p.new = '2' where p.L_ID = 'rva01' AND p.owner != 'name' AND p.owner = a.user AND a.superuser = '1'. You have an error in your SQL syntax near 'p, admin a SET p.new = '2' where p.L_ID = 'rva01' AND p.owner != 'name' AND' at line 1

Ich verwende eine MySQL Datenbank.

Meine Tabellen sehen folgendermaßen aus:

points                                         
-----------------------                      
L_ID | new | user

admin
-------------------------
owner | superuser



verknüpft sind die Tabellen über user und owner.


BITTE UM HILFE


----------



## mC pAiN (21. April 2004)

also ein UPDATE funktioniert nicht Tabellenübergreifend. So ist es zumindest in ORACLE. Denke, dass es in MySQL auch so ist. Du kannst nur in einem SELECT mit mehreren Tabellen arbeiten...


----------



## horvatj (22. April 2004)

Vollkommen richtig!

Generell kannst Du in SQL mit dem Befehl UPDATE immer nur EINE Tabelle ändern. Mehr macht eigentlich auch keinen Sinn, falls Du schon mal mit Transaktionen gearbeitet hast.

Spricht was gegen zwei UPDATE Zeilen?

Liebe Grüsse
Johann


----------



## Daydreamer (23. April 2004)

Hi kesnw,

muss meinen Vorrednern leider zustimmen. Allerdings hätte ich dann noch eine weitergehende Frage zu dem Tip mit den 2 SQL-Statements:

Macht es einen Unterschied, ob ich 2 Mal 1 SQL-Statement absetze (also 2 Mal mysql_query() ausführe mit je einem SQL-Statement) oder ob ich 1 Mal 2 Statements absetze (dann mit Semikolon getrennt  ). Die Frage bitte weniger mit Blick auf Performance sondern mehr mit Blick auf Sicherheit beantworten. (Oder anders gefragt: Wird das Commit nach beiden Befehlen gesetzt oder zwischen den beiden?)

Danke schonmal für die Antworten

Daydreamer


----------

