tek bi stored procedure ile birden fazla tablodan sorgu.

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
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

tek bi stored procedure ile birden fazla tablodan sorgu.

Mesaj gönderen meron06 »

Sel.al.arkadaşlar.benim projemde şöyle bi bölüm var 5 ayrı tablodan stored procedure ile birer adet kayıt çekiyorum.(örneğin A tablosundan urun koduna göre ürünün fiyatını alıyorum,b tablosundan muşteri nosuna muşterinin adını soyadını alıyorum,c tablosundan satıcı numarasına göre satıcı bilgilerini alıyorum.gibi bi örnek.:) ).

benim yapmak istediğim şey tek bi stored procedure ile birdefada ihtiyacım olan tüm verileri almak istiyorum.bu konuda bana yol gösterebilecek arkadaşlar varmı.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kullandığınız SELECT ifadesinde JOIN lerle istediğiniz tabloları da ekleyip istediğiniz alanların hepsinin dönmesini sağlıyabilirsiniz..

Kod: Tümünü seç

select t1.alan1, t2.alan2, t3.alan3, vb.. from tablo1 t1
left join tablo2 t2 on t2.key_alani = t1.key_alani
left join tablo3 t3 on t3.key_alani = t1.key_alani
left join tablo4 t4 on t4.key_alani = t1.key_alani
vb..
where şart_koşul
gibi..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Mesaj gönderen meron06 »

receb abi yalnız benim şartım bitane deyil herbir tablo için farklı şartlar mevcut bu durumda ne yapabilirim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Tabi ki ;

Kod: Tümünü seç

...
left join tablo2 t2 on (t2.key_alani = t1.key_alani and şart2 and şart3 ...vb)
şeklinde devam edeceksin :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

veya

Kod: Tümünü seç

  select rtrim(m.adi)
  from meslek m
  where m.artan=:var_meslek and
        m.soid=:ip_soid
  into :out_meslek;

  select rtrim(i.adi)
  from ilveilceler i
  where i.id=:var_nkoyer
  into :out_nkoyer;

  select rtrim(ii.adi)
  from ilveilceler ii
  where ii.id=:var_dogumyeri
  into :out_dogumyeri;

  select rtrim(b."adi"), b."tip"
  from bina b
  where b."binaartan"=:out_binaid
  into :out_binaadi, :out_binatipi;
böyle kullanılabilri.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla