PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL und Verweise auf andere Spalten/Tabellen



NoBug
27.06.03, 10:30
Hallo!

Ich habe leider bisher nicht viel erfahrung mit MySQL sammeln können. Die einzigsten Dinge die ich in dem zusammenhang kann ist die Bedienung von PHPMyAdmin ;). Deshalb habe ich evtl auch eine etwas blöde Frage zu der mir Google keine Antwort gab.
Und zwar möchte ich wissen ob es in MySQL eine Möglichkeit gibt durch einen Verweis, Alias, Verknüpfung oder ähnliches auf Daten aus einer anderen Tabelle zuzugreifen?

Mein Problem ist, dass ich Benutzerlogins und Passwörter in Tabelle XYZ stehen habe, die gleichen Daten aber auch in einer anderen Tabelle benötige. D.h. ich möchte durch eine Art Link auf die Spalte "username" sowie "passwd" aus Tabelle XYZ verweisen, sodass ich bei einer Abfrage in beiden Tabellen dieselben Daten in den beiden Spalten habe.

Gibt es eine solche Funktion in MySQL? Und wie ist der SQL-String für sowas? Oder falls es keine solche Funktion gibt, wie könnte man das sonst lösen?

Gruss Philipp

-Sensemann-
27.06.03, 10:40
Ich denke das passt besser in das Programmierer Forum


www.mrunix.de

NoBug
27.06.03, 10:47
Das kenne ich gar nicht, aber ich werde es da mal posten.

DefTonez
27.06.03, 14:45
Hallo NoBug,

sowas nennt man JOIN. In der MySQL Dokumentation stehts zwar genauer, hier aber mal ein kleiner Überblick:

SELECT * FROM table1,table2 WHERE table1.id=table2.id;
SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;
SELECT * FROM table1 LEFT JOIN table2 USING (id);
SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id LEFT JOIN table3 ON table2.id=table3.id;
SELECT * FROM table1 USE INDEX (key1,key2) WHERE key1=1 AND key2=2 AND key3=3;
SELECT * FROM table1 IGNORE INDEX (key3) WHERE key1=1 AND key2=2 AND key3=3;

Die ganze "Joinerei" gibts noch in verschiedenen Varianten: INNER JOIN, LEFT JOIN, usw....

Für genauere Vorgaben wären Tabellenstruktur nötig. Dann könnte mans sogar vorkauen. ;-)

Greetz,

DefTonez