Problem z podzapytaniem zwracającym pole przed "from" a konkretnie uzywanie rezultatu

47 views
Skip to first unread message

olej

unread,
Nov 8, 2009, 5:47:51 PM11/8/09
to firebird
Witam pięknie.

Borykam sie z następującym problemem, mam zapytanie któe wyglada mniej
wiecej tak:

select
glowna_tabela.*,
(select druga_tabela.pole from druga_tabela where druga_tabela.poleID
= glowna_tabela.poleID) as wynik
from glowna_tabela

i jak dotąd wszysko mi smiga, problem pojawia sie gdy chce uzyc do
czegoś pola "wynik" np.

select
glowna_tabela.*,
(select druga_tabela.pole from druga_tabela where druga_tabela.poleID
= glowna_tabela.poleID) as wynik
from glowna_tabela
where wynik = 1

lub jak chcę uzyc go jako łacznika do następnego podzapytania
(pierwszy ponizszy przyyklad) lub do dołączania innej tabeli (drugi
ponizszy przyklad)

select
glowna_tabela.*,
(select druga_tabela.pole from druga_tabela where druga_tabela.poleID
= glowna_tabela.poleID) as wynik
(select trzecia_tabela.pole from trzecia_tabela where
trzecia_tabela.pole = wynik) as wynik2
from glowna_tabela

select
glowna_tabela.*,
(select druga_tabela.pole from druga_tabela where druga_tabela.poleID
= glowna_tabela.poleID) as wynik
from glowna_tabela
join trzecia_tabela on trzecia_tabela.pole = wynik

W sybasie to smiga bez absolutnie jakiegokolwiek problemu........
liczyłem ze i tu bedzie.... czekam na ew. pomysły.


pozdr

Piotr

Janusz Świątek

unread,
Nov 9, 2009, 1:17:30 AM11/9/09
to BazaFi...@googlegroups.com
Witam,
a nie prościej odpuścić sobie konstrukcję z podzapytaniem i zrobić to
wszystko jako jedno, np.:

select glowna_tabela.*, druga_tabela.pole
from glowna_tabela
join druga_tabela on druga_tabela.poleID = glowna_tabela.poleID
join trzecia_tabela on trzecia_tabela.pole = druga_tabela.pole

--a teraz dowolne warunki, np.:
where druga_tabela.pole = 1


Pozdro


olej pisze:

olej

unread,
Nov 21, 2009, 1:02:06 PM11/21/09
to firebird
owszem, ale join da mi kolejny wiersz, a poza tym ja czesem potrzebuje
miec zwrocene jakis uwarunkowane pole......... ale jako kolejna
kolumna

P.
Reply all
Reply to author
Forward
0 new messages