PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   UPDATE mit JOINS über mehrere Tabellen (http://www.selfphp.de/forum/showthread.php?t=25556)

diamante 31.03.2015 10:48:05

UPDATE mit JOINS über mehrere Tabellen
 
Hi, ich habe folgende Tabellen:

Raum
Regal
Kiste
Kategorie
und Gerät.

Raum, Regal, Kategorie und Kiste besitzen jeweils nur die Einträge "raum(regal,kiste,kategorie)Name" und "raum(regal,kiste,kategorie)ID", die jeweils foreign keys in der Gerätetabelle sind.
Gerätetabelle besitzt daher folgende Einträge:

geräteID
geräteName
raumID
regalID
kategorieID
kistenID

Ich habe die Tabelle folgendermaßen verbunden:

Code:

SELECT geraeteID, geraeteName, raumname, regalName, kistenName, kategorieName
FROM (geraet LEFT OUTER JOIN kiste ON geraet.kistenID = kiste.kistenID)
LEFT JOIN regal ON geraet.regalID = regal.regalID
RIGHT JOIN kategorie ON geraet.kategorieID=kategorie.kategorieID
RIGHT OUTER JOIN raum ON geraet.raumID = raum.raumID
WHERE geraeteID='$id'"


Ein User kann über ein PHP Script die Einträge ändern und dabei ein Dropdown Menü nutzen. Nur wenn ich jetzt auf speichern klicke und den Update Vorgang einleiten will, weiß ich nicht mehr weiter.

Wenn ich versuche:

Code:

UPDATE (geraet LEFT OUTER JOIN kiste ON geraet.kistenID = kiste.kistenID
LEFT JOIN regal ON geraet.regalID = regal.regalID
RIGHT JOIN kategorie ON geraet.kategorieID=kategorie.kategorieID
RIGHT OUTER JOIN raum ON geraet.raumID = raum.raumID)
SET geraeteName = 'dsadsd', kategorieName = 'Kategorietest', raumname = 'A5.16', regalName = 'TestTest', kistenName = 'Testbox'
WHERE geraeteID ='5'

Wenn ich jetzt beispielsweise die Kategorie ändern will, ändern sich alle Einträge mit derselben Kategorie, und nicht nur der Eintrag mit der GeräteID 5. Wo liegt hier der Fehler?
Hoffe hier kann mir jemand helfen :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:15:20 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.