Syntax für Abfrage auf Abfrage

LupoDerWolf

Grünschnabel
Hallo,

ich muss eine Abfrage erstellen, die Daten aus einer anderen Abfrage ausliest. Diese 2. Abfrage kann aber nicht als Datenbankobjekt gespeichert werden.

Es müsste also etwas geben wie:

Select [etwas]
From [Select irgendwas from Tabelle]

Also: wenn die 2. Abfrage als DB-Objekt gespeirt wird, kann ich einfach den Namen in die From-Klausel setzen. Da ich sie aber dynamisch ist, kann ich sie nicht abspeichern und ich muss alles in einem SQL-Objekt machen.

Weiß einer, wie das geht?


Grüße

LupoDerWolf
 
Ja genauso wie du es vermutet hast geht es:

Select feld from tabellea where id = (select nr from tabelleb where ... )

Kommt aber auch darauf an welche DB du benutzt bei Mysql Version 3.X geht noch kein
Subselect
 
Danke, aber so meinte ich es nicht...

Als Sub-Select in der Where-Klausel, das kannte ich schon. Das ist aber nicht das Thema, sondern folgendes:

Ich kann in Access eine Abfrage auf Tabellen oder Abfragen machen.
In beiden Fällen habe ich normalerweise die Tabelle oder die Abfrage als Datenbankobjekt.

Beispiel:
Afrage1 heißt q_Kunden: "Select * from T_Kunden"
Afrage2: "Select * from q_Kunden"
Das geht, weil q_Kunden als Datenbankobjekt gespeichert ist.

Mein Problem:
Ich kann die Abfrage 1 nicht als Datenbankobjekt speichern, habe also keinen Namen, den ich referenzieren kann. Ich jabe nur deren SQL-String:"Select * from T_Kunden".

Wenn ich nun Abfrage 2 auf Abfrage 1 bauen will, wie ist dass die Systax?
Was müsste ich statt "Select * from q_Kunden" schreiben?
"Select * from ?"

Gibt es dazu überhaupt eine Lösung?

Grüße
 
Also, was du da geschrieben hast geht auch genau so:
Select [etwas]
From [Select irgendwas from Tabelle]
Das wäre dann, wie melmager schon gesagt hat, ein Subselect.

SELECT * FROM (SELECT * FROM tabelleyx Bedingung = irgendwas) WHERE Bedingung = irgendwasanderes

Damit hättest du doch genau das, was du bräuchtest, oder ?
Das Subselect gibt eine temporäre Tabelle zurück, in der das "obere" Select ausgeführt wird.
 
Zuletzt bearbeitet:
Zurück