Birçok Tablodan Veri Sorgulama Ama Nasıl?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Birçok Tablodan Veri Sorgulama Ama Nasıl?

Mesaj gönderen R.K. »

Merhaba arkadaşlar. SQL ile bir sorgu yazmaya çalışıyorum ama bir türlü istediğim gibi kayıtları çekemedim. Sanırım SQL bilgimin yetersiz olmasından diyerek bir sürü SQL dökümanı arasına daldım ama sonuç yine hüsran :( Yardımcı olursanız sevinirim.
--TBL_MARKA
MARKA_ID OTOMATİK ARTAN SAYI
MARKA METİN
--TBL_FIRMA
FIRMA_ID OTOMATİK ARTAN SAYI
FIRMA METİN
--TBL_ISLEMANA
ANA_ID OTOMATİK ARTAN SAYI
TARIH TARİH
FİRMA SAYI YABANCI ANAHTAR TBL_FIRMA TABLOSUNDAN
--TBL_ISLEMDETAY
DETAY_ID OTOMATİK ARTAN SAYI
ANA_ID SAYI YABANCI ANAHTAR TBL_ISLEMANA TABLOSUNDAN
MARKA SAYI YABANCI ANAHTAR TBL_MARKA TABLOSUNDAN
SERINO METİN
ORDERNO METİN

Arkadaşlar tablo yapılarım yukarıdaki gibi. Detay tablomdaki her kayıdı dbgridde göstermek istiyorum. Aşağıdaki gibi bir SQL yazdım ama olmuyor saçma sapan sonuçlar aldım.

Kod: Tümünü seç

select m.MARKA,d.MODEL,d.ORDER_NO,d.SERINO, a.GON_TARIH, a.DONUS_TARIH from 
TBL_ISLEMDETAY d, TBL_ISLEMANA a, TBL_MARKA m where d.MARKA_ID=m.MARKA_ID  
Bu son denediğim sorguydu sizede çok saçma gelmiş olabilir :) denemek amacıyla yazmıştım. Yorumlarınızı bekliyorum arkadaşlar...
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: Birçok Tablodan Veri Sorgulama Ama Nasıl?

Mesaj gönderen adnansirca »

Join olayını araştırın.
Hangi veritabanını kullandığınızı yazmamışsınız.

Kod: Tümünü seç

SELECT *FROM TBL_ISLEMANA
LEFT JOIN MARKA ON(MARKA_ISLEM_ID = ANA_ID) 
LEFT JOIN .......

gibi bir kod ile tüm verileri çekebilirsiniz.
Aynı işlemi iç içe select ifadeleri kullanarak da yapabilirsiniz.
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Re: Birçok Tablodan Veri Sorgulama Ama Nasıl?

Mesaj gönderen R.K. »

Evet hocam access yazmayı unutmuşum. Bu yazdığım tablolara göre bir örnek yazabilir misiniz? Tablolarımın tamamı bu değil ona göre uyarlamaya çalışacağım.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: Birçok Tablodan Veri Sorgulama Ama Nasıl?

Mesaj gönderen adnansirca »

Detail tablolarınızda otomatik artan sayı dışında sayısal bir alan daha tanımlayın.
Böylelikle master-detail ilişkisi kurulmuş olur.
--TBL_MARKA
MARKA_ID
MARKA
ANA_ID

--TBL_FIRMA
FIRMA_ID
FIRMA
ANA_ID

--TBL_ISLEMANA
ANA_ID
TARIH
FİRMA

--TBL_ISLEMDETAY

DETAY_ID
ANA_ID
MARKA
SERINO
ORDERNO


Aşağıdaki kod ile tüm tablolardaki bilgileri istisnasız çekersiniz.

Kod: Tümünü seç

SELECT *
FROM ((TBL_ISLEMANA A 
LEFT JOIN TBL_MARKA M ON A.ANA_ID = M.ANA_ID) 
LEFT JOIN TBL_FIRMA  B  ON A.ANA_ID = B.ANA_ID)
LEFT JOIN TBL_ISLEMDETAY C ON A.ANA_ID = C.ANA_ID 
Bu kod tüm verileri çeker. Bu yüzden şartları kendinize göre uyarlamanız gerekir.
Bu arada aklınızda olsun, Access tabloları ikili değerlendirir. Bu yüzden parantezlere dikkat etmek gerekir.

Tavsiyem daha gelişmiş Firebird kullanmanız.
Cevapla