![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() |
![]() Hallo ihr!
Ich seit meine letze Hoffnung, habe ich doch schon den ganzen Tag probiert aber es nicht geschafft. folgende Ausgangssituation Tabelle "mitarbeiter" enthält in einer Spalte den Namen und außerdem noch weitere Spalten. Tabelle "user" enthält eine UserID, Name und ebenfalls weiter Daten. Ich möchte nun in der Tabelle "mitarbeiter" die Spalte "name" durch die dazugehörige User-ID aus der Tabelle "user" ersetzen - wobei die Spalten "name" in beiden tabellen ident sind. Das würde natürlich über den Umweg PHP einfach lösbar sein, allerdings handelt es sich um knapp 60.000 Einträge und da wird das mit PHP alleine etwas langsam, fürchte ich. Habt ihr eine Idee? #Hannes# |
![]() |
![]() |
![]() |
#2 |
Aussteiger
![]() |
![]() http://www.bitmechanic.com/mail-arch...1998/0424.html
wenn das noch aktuell ist, dann wird das von mysql nicht unterstützt ... oracle versteht das: Code:
update tabelle1 t1 set t1.name = (select t2.uid from tabelle2 t2 where t2.name = t1.name)
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() |
![]() Stimmt, funktioniert mit MySQL nicht. Andere Lösungfvorschläge?
#Hannes# |
![]() |
![]() |
![]() |
#4 |
Newbie
![]() Registriert seit: 25.03.2003
Beiträge: 16
|
![]() Du könntest die verknüpften Daten in eine 3. Tabelle schreiben und die dann unbenennen. Die 2 alten tabellen joinst du über das Name Attribut.
insert into tab3 select a.atr1,b.atr2 from table1 as a inner join table2 as b on b.name=a.name |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() |
![]() Danke! Ich hab grad das Netz und das MySQL -Handbuch durchstöbert aber keine wirklich gute Erkärung zu JOIN gefunden. Was tut dieser Befehl genau?
Ich weiß gerne über verwendete Befehle bescheid, bevor ich sie verwende ;-) #Hannes# |
![]() |
![]() |
![]() |
#6 |
Aussteiger
![]() |
![]()
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
#7 |
Senior Member
![]() Registriert seit: 02.03.2002
Beiträge: 123
|
![]() bei solchen abfragen mit LEFT JOIN arbeiten, das bringt mehr power. ich kenn deine spaltennamen nicht daher spalte1,spalte2....
select mitarbeiter.spalte1, mitarbeiter.spalte2, name.name as username from mitarbeiter LEFT JOIN name ON mitarbeiter.UserID=name.UserID where mitarbeiter.spalte1='irgendwas' doch achtung, die feldnamen müssen mit der jeweiligen tabelle angesprochen werden (mitarbeiter.spalte1 nicht blos spalte1)! --weev
____________________________________
-- free tibet -- |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|