Sub-Selects

Sub-Selects

am 31.08.2006 15:04:38 von Andreas Bensen

Hallo NG,

kann ich Spalten, die ich über einen normalen SELECT geliefert bekomme
in einem Sub-Select als WHERE oder JOIN ON(...) Bedingung nutzen?

Quasi sowas:

SELECT
spalteA, spalteB,
(SELECT spalteC from tabelleB WHERE spalteA = tabelleA.spalteA)
FROM
tabelleA

Er soll also SpalteA aus jeder Ergebniszeile in die WHERE Bedingung des
Sub-Selects einsetzen.

Danke,
Frank

Re: Sub-Selects

am 31.08.2006 16:45:38 von Tobias Kutzler

Hallo Frank,

Frank Degener schrieb:
> Hallo NG,
>
> kann ich Spalten, die ich über einen normalen SELECT geliefert bekomme
> in einem Sub-Select als WHERE oder JOIN ON(...) Bedingung nutzen?

Hast Du das mal ausprobiert? Bevor ich hier fragen würde, würde ich es
erstmal testen und wenn es dann nicht geht, hier nachfragen.

>
> Quasi sowas:
>
> SELECT
> spalteA, spalteB,
> (SELECT spalteC from tabelleB WHERE spalteA = tabelleA.spalteA)
> FROM
> tabelleA
>

Sub-Selects bringen hier gar nichts. Es könnte auch sein, dass Dein
"Sub-Select" hier mehrere Datensätze liefert.

Und das was Du hier vorhast, ist nichts anderes als ein JOIN:

SELECT spalteA, spalteB, spalteC FROM tabelleA a LEFT JOIN tabelleB b ON
a.spalteA = b.spalteA

> Er soll also SpalteA aus jeder Ergebniszeile in die WHERE Bedingung des
> Sub-Selects einsetzen.

siehe oben.

Ciao,
Tobias

Re: Sub-Selects

am 01.09.2006 13:45:13 von Andreas Bensen

Hallo Tobias,

Tobias Kutzler wrote:
> Frank Degener schrieb:
>> kann ich Spalten, die ich über einen normalen SELECT geliefert
>> bekomme in einem Sub-Select als WHERE oder JOIN ON(...) Bedingung
>> nutzen?
>
> Hast Du das mal ausprobiert? Bevor ich hier fragen würde, würde ich es
> erstmal testen und wenn es dann nicht geht, hier nachfragen.
>
>>
>> Quasi sowas:
>>
>> SELECT
>> spalteA, spalteB,
>> (SELECT spalteC from tabelleB WHERE spalteA = tabelleA.spalteA)
>> FROM
>> tabelleA
>>
>
> Sub-Selects bringen hier gar nichts. Es könnte auch sein, dass Dein
> "Sub-Select" hier mehrere Datensätze liefert.
>
> Und das was Du hier vorhast, ist nichts anderes als ein JOIN:

Mit einem JOIN ist mein Problem aber nicht zu lösen. Das war nur ein
Beispiel. Ich möchte wissen, wie man einen Sub-Select einsetzt und z.B.
in der WHERE Bedingung des Sub-Selects auf eine Spalte im Ergebnis
zugreift? Über Variablen?

Re: Sub-Selects

am 01.09.2006 20:55:03 von dnoeth

Frank Degener wrote:

> Mit einem JOIN ist mein Problem aber nicht zu lösen. Das war nur ein
> Beispiel. Ich möchte wissen, wie man einen Sub-Select einsetzt und z.B.
> in der WHERE Bedingung des Sub-Selects auf eine Spalte im Ergebnis
> zugreift? Über Variablen?

Genau so wie du's geschrieben hast, probier's doch einfach mal aus.
Nennt sich übrigens "skalare Subquery".

Dieter