Tablo birleştirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
okansaritas
Üye
Mesajlar: 8
Kayıt: 02 Nis 2007 09:24

Tablo birleştirme

Mesaj gönderen okansaritas »

4 tane tablom var ve bunların içerisinde herhangi bir tabloda kaydın bulunması şartında verileri getirmesini istiyorum.

örnek olarak
A tablosu (ana tablo)
B tablosu
C tablosu
D tablosu

A tablosunda where şartı ile aradığım kaydın bulunması halinde diğer tablolarda şart sağlanmamış olsa dahi getirmesini istiyorum.

nasıl yapabilirim.(inner,left join... denedim bir türlü istediğim sonucu alamadım.)
Ne kadar yükselirsen uçmak bilmeyenlere o kadar küçük görünürsün.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Tablo birleştirme

Mesaj gönderen mussimsek »

Merhaba,

union ile yapabilirsin. :ara union

Kolay gelsin.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Tablo birleştirme

Mesaj gönderen adelphiforumz »

A tablosunda olan bir kaydı b dosyasında olsada olmasada getirir.

Kod: Tümünü seç

SELECT     * FROM  T_A 
LEFT OUTER JOIN T_B ON T_A.REFNO = T_B.REFNO
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
okansaritas
Üye
Mesajlar: 8
Kayıt: 02 Nis 2007 09:24

Re: Tablo birleştirme

Mesaj gönderen okansaritas »

Hocam union ile denedim bir türlü sonuç alamadım. LEFT OUTER JOIN ile bağladığımda hiç kayıt getirmiyor.
Aşağıdaki şekilde bağlamayı denedim gene olmadı.


if cxcheckbox1.Checked then //TABLO 2
begin
dm.kalite_kontrol_q.SQL.Add('RIGHT OUTER JOIN PAMUK_KALITE');
dm.kalite_kontrol_q.SQL.Add('ON URETIM_BILGISI.PARTI_NO=PAMUK_KALITE.PARTI_NO');
end;

if cxcheckbox2.Checked then //TABLO 3
begin
dm.kalite_kontrol_q.SQL.Add('RIGHT OUTER JOIN IPLIK_KALITE');
dm.kalite_kontrol_q.SQL.Add('ON URETIM_BILGISI.URETIM_EMRI=IPLIK_KALITE.URETIM_EMRI');
end;

if cxcheckbox3.Checked then //TABLO 4
begin
dm.kalite_kontrol_q.SQL.Add('RIGHT OUTER JOIN KUMAS_KALITE');
dm.kalite_kontrol_q.SQL.Add('ON URETIM_BILGISI.URETIM_EMRI=KUMAS_KALITE.URETIM_EMRI');
end;
Ne kadar yükselirsen uçmak bilmeyenlere o kadar küçük görünürsün.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Tablo birleştirme

Mesaj gönderen adelphiforumz »

okansatitas arkadasim bence biryerlerde hata yapiyorsun cunku ben bir cok projede left outer join kullaniyorum
sana basit bir örnek
Aşağıda sonucunu gördüğün null olan kısımlar personel dosyasında o ile ait hiç kayıt yapılmaış demektir.

SELECT T_ILLER.IL_REFNO, T_ILLER.IL_TANIM, T_PERSONEL.*
FROM T_ILLER LEFT OUTER JOIN
T_PERSONEL ON T_ILLER.IL_REFNO = T_PERSONEL.PR_ILKOD

IL_REFNO IL_TANIM PR_REFNO PR_ILKOD PR_TANIM
1 ADANA 1 1 ADANALI 1
1 ADANA 2 1 ADANALI 2
6 ANKARA NULL NULL NULL
7 ANTALYA 5 7 ANTALYALI
16 BURSA NULL NULL NULL
34 İSTANBUL 3 34 İSTANBULLU
35 İZMİR 4 35 İZMİRLİ
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
okansaritas
Üye
Mesajlar: 8
Kayıt: 02 Nis 2007 09:24

Re: Tablo birleştirme

Mesaj gönderen okansaritas »

mussimsek hocamın dediği gibi union ile yaptım istediğim sonucu elde ettim şimdi şöyle bir sorunum var.

Tablo 2 de olup da Tablo 1 de olmayan bir alanı sorguma eklediğim zaman hata mesajı alıyorum
Bu sorunu nasıl çözebilirim.

SELECT AMBAR.URETIM_EMRI ,AMBAR.parti_no, AMBAR.IPLIK_NE FROM AMBAR
WHERE ambar.parti_no='SG040'
union

select iplik_kalite.uretim_emri,iplik_kalite.parti_no,iplik_kalite.iplik_ne from iplik_kalite
WHERE iplik_kalite.parti_no='SG040'

union
select kumas_kalite.uretim_emri,kumas_kalite.parti_no, kumas_kalite.iplik_ne from kumas_kalite
WHERE kumas_kalite.parti_no='SG040'

Kolay gelsin teşekürler.
Ne kadar yükselirsen uçmak bilmeyenlere o kadar küçük görünürsün.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Tablo birleştirme

Mesaj gönderen conari »

Şaban hoca sihirli küreyi sitede bırakmamış :D
Hata mesajını yazarmısınız.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
okansaritas
Üye
Mesajlar: 8
Kayıt: 02 Nis 2007 09:24

Re: Tablo birleştirme

Mesaj gönderen okansaritas »

invalid command
'count of column list and variable list donot match' proses stopped
Ne kadar yükselirsen uçmak bilmeyenlere o kadar küçük görünürsün.
okansaritas
Üye
Mesajlar: 8
Kayıt: 02 Nis 2007 09:24

Re: Tablo birleştirme

Mesaj gönderen okansaritas »

union dışında yapabileceğim bir yol yok mudur acaba???? :oops: :oops: :oops:
Ne kadar yükselirsen uçmak bilmeyenlere o kadar küçük görünürsün.
Cevapla