Subquery hakkinda birkac sey..

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
enalbant
Üye
Mesajlar: 22
Kayıt: 27 Eki 2003 05:51
Konum: Izmir
İletişim:

Subquery hakkinda birkac sey..

Mesaj gönderen enalbant »

Merhaba

SQL konusunda biraz bilgim var fakat subquery konusunu tam anlamiyla cozemedim. Subquery'nin kullanilabildigi yerler ve yaptigi isi bana orneklerle aciklayabilirmisiniz? Kullandigim database onemli degil, standart SQL sozcuklerini icermesi yeterli.

Tesekkurler..

Iyi calismalar...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

sub query bir select cumlesi kisaca icinde bir baska bagimsiz select cumlesinin kullanilmasidir...

Mesela

Kod: Tümünü seç

Select PERSONEL_NO 
from CEZALI_PERSONEL_LISTESI
gibi bir cumle ile senaryomuz geregi ceza almis persoenllerin numaralarini listeleyebiliriz...

Kod: Tümünü seç

Select * 
from PERSONEL
ise butun personel listesini biye verir.

biz eger ceza alan personellerin 3, 6, 11 numarali personeller oldugunu biliyorsak ceza alan personellerin butun bilgilerini listelemek icin soyle bir sql cumlesi yazabiliriz

Kod: Tümünü seç

Select * 
from PERSONEL
where PERSONEL_NO=3 or PERSONEL_NO=6 or PERSONEL_NO=11
veya

Kod: Tümünü seç

Select * 
from PERSONEL
where PERSONEL_NO in (3,6,11)
simdi tabi kodumuz dinamik degil.. yani ceza alanlarin numaralarini bildigimiy icin el ile yazdik ama yarin bu yumle calistiginda yeni ceza almis 17 numarali personel listede olmayacak... iste bu noktada sub query imdadimiza yetisiyor...

ilk yazdigimiz sql cumlesi zaten bize ceza alan personelin listesini veriyordu. o cumleyi bu culenin icine monte edelim...

Kod: Tümünü seç

Select * 
from PERSONEL
where PERSONEL_NO  in (Select PERSONEL_NO from CEZALI_PERSONEL_LISTESI)
bir subquery gordugumuzde oraya o query nin sonucunu koyarak ana query nin daha basit ve anlasilmasini saglayabiliriz. Ya da yazdigimiz bir sql cumlesinde ihtiyac duydugumuz bir veriyi olusturan bir query var ise onu oraya bir subquery olarak koyabiliriz....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

bunlara paralel delphiturkiye olarak duzenledigimiz veritabani seminerleri izlemenizi hararetle tavsiye ederim....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla