Daten von einer anderen Tabelle holen

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von BalkonSurfer, 25.10.2005.

  1. BalkonSurfer

    BalkonSurfer Thread Starter Banned

    Beiträge:
    5.157
    Zustimmungen:
    1
    MacUser seit:
    27.07.2003
    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ß
     
  2. dms

    dms

    Meinst Du sowas?

    select TabelleB.Spalte2 from Tabelle, TabelleB where TabelleB.Spalte1 = Tabelle.Spalte2 AND Tabelle.Spalte1="1"
     
  3. tomtom42

    tomtom42 MacUser Mitglied

    Beiträge:
    110
    Zustimmungen:
    4
    MacUser seit:
    15.04.2005
    ... 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
     
  4. BalkonSurfer

    BalkonSurfer Thread Starter Banned

    Beiträge:
    5.157
    Zustimmungen:
    1
    MacUser seit:
    27.07.2003
    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: 25.10.2005
  5. tomtom42

    tomtom42 MacUser Mitglied

    Beiträge:
    110
    Zustimmungen:
    4
    MacUser seit:
    15.04.2005
    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
     
  6. BalkonSurfer

    BalkonSurfer Thread Starter Banned

    Beiträge:
    5.157
    Zustimmungen:
    1
    MacUser seit:
    27.07.2003
    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!
     
Die Seite wird geladen...

Diese Seite empfehlen