tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
1373
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    HAllo,

    folgendes Problem:

    aus einer View erhalte ich den Wert [Spaltenname2].
    Nun möchte ich in der selben View einen Unterselect starten
    der aus einer Tabelle genau diese Spalte ausliest.

    Also von der Spalten ist mir ja die ID und der Name bekannt.
    Ich bräuchte also so was wie "Select * from Tabelle where column_name = 'Spaltenname2'

    Kann mir hier jemand helfen ?
    Also als Skript könnte ich das schon bewerkstelligen ich möchte das aber in einer View haben.

    Danke schon mal im Voraus.
     

  2. #2
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    Sorry, aber ich glaube ich verstehe nicht ganz

    Also, du hast eine Tabelle (oder View), in der es eine Spalte
    "column_name" gibt, aus der möchtest du alle Zeilen auslesen, für die column_name einen bestimmten Wert hat?

    Du meinst nicht etwa
    SELECT Spaltenname2 FROM Table...?

    Bitte erkläre mir dein Problem genauer...
     

  3. #3
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    JA genau.

    Also es gibt eine Tabelle mit Spaltennamen:

    ID,
    Name,
    Ort

    Aus der View erhalte ich den Wert Ort (Spalte3).
    Nun möchte ich den Inhalt aus Ort (Spalte3 der Tabelle auslesen).
    Wenn ich den Wert ID aus der View erhalte möchte ich dessen Spaltenwert auslesen.
     

  4. #4
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    Nochmal Sorry!

    Bitte gib doch mal ein konkretes Beispiel für mich an, mit Testdaten und so. Ich habe immer noch nicht genau verstanden, was du eigentlich willst (bin schon so alt....)

    Vielleicht kann ich dir dann helfen.
    vop
     

  5. #5
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    Also ich versuch das mal mit nem "statischen" SELECT zu erklären.


    SELECT
    v.ID
    ,'Name'
    ,(SELECT
    Name
    FROM
    tTable
    WHERE
    ID = v.ID) FeldWert
    FROM
    vView v

    So sollte das Ergebnis aussehen.
    Wenn ich den Wert 'Ort' aus der View erhalte möchte ich die Spalte [Ort]
    aus der Tabelle selektieren.

    Also nocheinmal.

    Die Frage lautet:

    Wenn ich eine Spaltenbezeichnung aus einer View heraus erhalte,
    wie kann ich diese Spalte selektieren ?
     

  6. #6
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    Also hab das Problem jetzt doch per Skript gelöst.

    Aber falls es doch eine andere Lösung gibt kannst mir dann bitte Bescheid geben ?


    Danke !
     

  7. #7
    dbwizard dbwizard ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Ort
    Zürich
    Beiträge
    285
    Zitat Zitat von StefanLausL Beitrag anzeigen
    Also hab das Problem jetzt doch per Skript gelöst.

    Aber falls es doch eine andere Lösung gibt kannst mir dann bitte Bescheid geben ?


    Danke !
    Hallo,

    Also, ich muss gestehen, dass ich auch etwas ratlos vor deiner Problembeschreibung gestanden habe...

    Willst du etwa so etwas ? :

    Code :
    1
    2
    3
    4
    
     
    SELECT v.ID, t.Name FROM vView v, ttable t
    WHERE v.id=t.id
    AND v.id=FeldWert;


    Gruss
     

  8. #8
    deepthroat deepthroat ist gerade online Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Ja, die Problembeschreibung ist etwas - äh - suboptimal

    Ich nehme an, das er etwas will wie:
    Code :
    1
    2
    3
    
    result = select xyz from view;
     
    select $result from table;
    Also das Resultat einer Abfrage (der Einfachheit halber nur ein Datensatz mit einer Spalte) soll dann als Name einer Tabellenspalte interpretiert werden für eine neue Abfrage. Liefert also die erste Abfrage den (einzelnen) Wert "Strasse", soll dann eine Abfrage auf die Spalte 'Strasse' erfolgen.

    Grundsätzlich geht das nicht. Man muß das immer in irgendeiner Weise skripten, da man das zweite Select Statement erstmal zusammenfügen muss.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  9. #9
    dbwizard dbwizard ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Ort
    Zürich
    Beiträge
    285
    Zitat Zitat von deepthroat Beitrag anzeigen
    Hi.

    Ja, die Problembeschreibung ist etwas - äh - suboptimal

    Ich nehme an, das er etwas will wie:
    Code :
    1
    2
    3
    
    result = select xyz from view;
     
    select $result from table;
    Also das Resultat einer Abfrage (der Einfachheit halber nur ein Datensatz mit einer Spalte) soll dann als Name einer Tabellenspalte interpretiert werden für eine neue Abfrage. Liefert also die erste Abfrage den (einzelnen) Wert "Strasse", soll dann eine Abfrage auf die Spalte 'Strasse' erfolgen.

    Grundsätzlich geht das nicht. Man muß das immer in irgendeiner Weise skripten, da man das zweite Select Statement erstmal zusammenfügen muss.

    Gruß
    - Ja, dass könnte die richtige Interpretation sein...Dann wäre Dynamic SQL hilfreich...nun kommt es natürlich auf das verwendete DBMS an..
     

  10. #10
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    JA genau.

    result = select xyz from view;
    select $result from table;

    So was in der Art hab ich gesucht.
    Eben nur direkt in einer View und nicht als Skript
     

  11. #11
    dbwizard dbwizard ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Ort
    Zürich
    Beiträge
    285
    Zitat Zitat von StefanLausL Beitrag anzeigen
    JA genau.

    result = select xyz from view;
    select $result from table;

    So was in der Art hab ich gesucht.
    Eben nur direkt in einer View und nicht als Skript
    Ja, da wirst du Dynamic SQL verwenden müssen....welche Db verwendest du ?

    Gruss
     

  12. #12
    StefanLausL StefanLausL ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    127
    SQL-Server 2000.

    Habs bereits als Skipt umgesetzt.

    Danke für Eure Mühe !
     

Ähnliche Themen

  1. SQL Tabelle - Spaltennamen auslesen
    Von Loveboat im Forum PHP
    Antworten: 1
    Letzter Beitrag: 22.08.10, 17:54
  2. Array auslesen ohne den Index zu kennen
    Von Herror im Forum PHP
    Antworten: 4
    Letzter Beitrag: 18.09.09, 21:03
  3. ADODB-Spaltennamen der Tabelle
    Von Soapp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 31.05.06, 15:23
  4. MySQL Spaltennamen Select
    Von Wolfsbein im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 02.10.03, 12:20
  5. Spaltennamen einer Tabelle per SQL Anweisung...
    Von Sapatz im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 22.08.02, 15:47