Daten von einer anderen Tabelle holen

B

BalkonSurfer

Mitglied
Thread Starter
Dabei seit
27.07.2003
Beiträge
5.253
Reaktionspunkte
2
Hi.
Ich habe eine Tabelle A in der eine Spalte "Spalte1" und eine Spalte "Spalte2" sind.
Eintrag 1: Spalte1 = "1" und Spalte2 = "5"

Jetzt mache ich einen query: "select Spalte2 from Tabelle where Spalte1 = "1";

Bis dahin kein Problem. Jetzt bedeutet die "5" aber, dass damit ein Wert in Tabelle B gemeint ist.
Tabelle B:
Spalte1 = "5" und Spalte2 = "Auto"

Jetzt muss ich im php - Script "Auto" zurückbekommen.

Jetzt kann ich da das Ergebnis der ersten Abfrage ("5") nehmen und eine neue Abfrage machen: select Spalte2 from TabelleB where Spalte1="5";

Das ist allerdings doch viel zu aufwendig, da das mindestens 200 mal in einem kleinen Script ausgeführt werden müsste (für meinen Fall)

Gibt es eine Möglichkeit direkt bei der ersten Abfrage eine Art: Select TransformiereAusTabelleB(Spalte2) from TabelleA where Spalte1 = "1";
zu machen?

Das wäre praktischer.

Danke und Gruß
 
Meinst Du sowas?

select TabelleB.Spalte2 from Tabelle, TabelleB where TabelleB.Spalte1 = Tabelle.Spalte2 AND Tabelle.Spalte1="1"
 
... oder um Tipparbeit zu sparen auch mit Abkürzungen

select b.Spalte2 from TabelleA a, TabelleB b
where a.Spalte1 = 1
and a.Spalte2 = b.Spalte1;

Gruß,
Tom
 
Ja genau! Nur leider ist mir eben aufgefallen, dass in TabelleA kein Primärschlüssel vorhanden ist, dh. sie kann so aussehen:
Spalte1 - Spalte2
1 - 5
1 - 7
1 - 9
2 - 5
2 - 1
usw.

Dh. ich muss für jedes Ergebnis von Select where Spalte 1 = "1" den ensprechenden Spalte2 Wert in den Wert aus der TabelleB konvertieren, so dass ich das Eergebniss:
1 - TabelleB(5)
1 - TabelleB(7)
1 - TabelleB(9)

=

1 - "Auto"
1 - "Fisch"
1 - "Schuh"

bekomme
 
Zuletzt bearbeitet:
Hi,

dem SQL ist das ziemlich egal ;-)
In deinem Beispiel wird dann das select eine Liste mit 3 Werten liefern.
Dein weiteres Script muß also damit umgehen können, dass viele Werte als Ergebnis zurückkommen können.

Wenn das nicht gewünscht ist, müsste man sich nochmal Gedanken dazu machen ...

Tom
 
Ach wie geil - das geht ja.
Ich habe es vorhin im php-code ausprobiert und irgendwie Murks gemacht. Im Terminal kommt genau das zurück, was ich will :D
Das Script kommt prima mit den mehreren Werten klar - das wollte ich ja.

Danke euch!
 
Zurück
Oben Unten