WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 21.01.2004, 13:32   #1
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard MySQL-Sub-Select

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#
dub ist offline   Mit Zitat antworten
Alt 21.01.2004, 13:52   #2
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

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)
allerdings würden jene datensätze, für die kein entsprechender eintrag gefunden wird, mit NULL upgedatet werden ...
____________________________________
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.
pc.net ist offline   Mit Zitat antworten
Alt 21.01.2004, 14:11   #3
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

Stimmt, funktioniert mit MySQL nicht. Andere Lösungfvorschläge?

#Hannes#
dub ist offline   Mit Zitat antworten
Alt 21.01.2004, 14:22   #4
darthj
Newbie
 
Registriert seit: 25.03.2003
Beiträge: 16


Standard

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
darthj ist offline   Mit Zitat antworten
Alt 23.01.2004, 18:37   #5
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

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#
dub ist offline   Mit Zitat antworten
Alt 23.01.2004, 18:43   #6
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

http://www.devtrain.de/artikel_626.aspx
____________________________________
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.
pc.net ist offline   Mit Zitat antworten
Alt 26.01.2004, 15:16   #7
weev
Senior Member
 
Registriert seit: 02.03.2002
Beiträge: 123


Standard

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 --
weev ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:56 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag