SQL-Kommando soll andere Sätze verändern
Kalle_B
- datenbank
0 Hans0 Kalle_B
0 Sven Rautenberg
Hallöle,
habe folgendes Verknüpfungs- Problem:
In der Personendatei gibt es pro Firma einen "Chef" (Unter- Adresse = 1) und beliebig viel Mitarbeiter (adr_unt > 1)
Nun wurde per Programm beim "Chef" das Feld xxx mit einem Wert gefüllt.
Diesen Wert brauche ich auch in den Sätzen der Mitarbeiter.
Chef und Mitarbeiter haben einen gemeinsamen Kurznamen. (UNIQUE kurzname, adr_unt)
kurzname adr_unt xxx
-------- ------- ----------
Meyer 1 A
Meyer 2
Meyer 3
Müller 1 B
Müller 2
Wie also bekomme ich den Wert "A" in die Sätze der anderen Meyers und den Wert "B" in die anderen Müllers?
UPDATE personen SET xxx= ???
Ach ja, MySQL hat die Version 3.23.58, also wohl nix mit Unter- Abfragen. Aber vielleicht geht's ja auch so.
Kalle
Hi Kalle!
kurzname adr_unt xxx
Meyer 1 A
Meyer 2
Meyer 3
Müller 1 B
Müller 2Wie also bekomme ich den Wert "A" in die Sätze der anderen Meyers und den Wert "B" in die anderen Müllers?
Wie machst Du eine select-Anweisung?
select adr_unt from Tabelle
Dann bekommst Du alle adr_unt. Wie sieht Dein select-Statement aus, wenn Du nur die adr_unt von "Meyer" haben willst? Ja, genau, da muß noch was an das select-statement. Und dieses etwas muß auch an das update-Statement!
Gruß
Hans
Hi Hans!
Dann bekommst Du alle adr_unt. Wie sieht Dein select-Statement aus, wenn Du nur die adr_unt von "Meyer" haben willst? Ja, genau, da muß noch was an das select-statement. Und dieses etwas muß auch an das update-Statement!
update personen set xxx= ??? where adr_unt > 1
Das sind die Sätze, die ich ändern möchte. Nur wie bekomme ich den Wert des Feldes xxx von adr_unt=1 bei gleichem Kurznamen?
DAS ist mir nicht klar.
Kalle
Moin!
In der Personendatei gibt es pro Firma einen "Chef" (Unter- Adresse = 1) und beliebig viel Mitarbeiter (adr_unt > 1)
Nun wurde per Programm beim "Chef" das Feld xxx mit einem Wert gefüllt.
Diesen Wert brauche ich auch in den Sätzen der Mitarbeiter.
Chef und Mitarbeiter haben einen gemeinsamen Kurznamen. (UNIQUE kurzname, adr_unt)
Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.
- Sven Rautenberg
Moin, Sven!
Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.
Aha - das ist der Fehler im DB-Konzept. Die Tabelle mit den Kurznamen gibt es nicht, sie sind lediglich Bestandteil der Personendatei.
Kalle
Moin!
Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.
Aha - das ist der Fehler im DB-Konzept. Die Tabelle mit den Kurznamen gibt es nicht, sie sind lediglich Bestandteil der Personendatei.
Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen? Oder ist das nur der fromme Wunsch gewesen, der durch Programmierung durchgesetzt wurde, aber nicht durch einen UNIQUE-Index?
- Sven Rautenberg
Moin!
Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen?
owner_id + kurzname + adr_unt ist UNIQUE
wobei owner_id die Veranstaltung ist. Also Abgrenzung 2005 - 2006
Kalle
Hi,
Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen?
Auf die gleiche Weise, auf die er es hingekriegt hat, daß eine Firma genau einen Chef hat ... ;-) ;-) ;-)
Oder ist das nur der fromme Wunsch gewesen,
Vermutlich ...
cu,
Andreas