mehmetduran.com - Paylaşmak Güzeldir...
Left Join ile Çoklu Tablo Bağlama
Sitemi yaparken veritabanı ilişkileri hakkında bir çok şey öğrendim. Bunlardan şimdi bahsedeceğim left join ile tablolar arası ilişki kurabiliyoruz. Bu olayı bir örnekle açıklamaya çalışacağım. Vereceğim örnekte; haber ve haberin bulunduğu kategoriyi yazdıracağız. Kategoriyi bulurken bu left join ilişkisini kullanacağız.

Kodlarımıza ve veritabanımıza bakalım.

Yapacağım örnekte veritabanımız şu şekilde olacak:
Left Join Tablo Bağlama - Tablolar
Daha sonra ise left join ile sorgumuza bakacak olursak:

string sorgu = "select a.* from ((kategoriler as a) left join  
baglantilar on a.kategori_id=baglantilar.kategori_id)
left join haberler on baglantilar.kategori_id=haberler.haber_id
where baglantilar.haber_id=@haber_id"
; // bu sorgu access için.
string sorgu = "select a.* from kategoriler as a left join  
baglantilar on a.kategori_id=baglantilar.kategori_id
left join haberler on baglantilar.kategori_id=haberler.haber_id
where baglantilar.haber_id=@haber_id"
; // bu sorgumuz ise mysql için

Access'te ve MySql'de böyle ufak bir fark var. Sorgumuz böyle ve sorgumuzu kullanarak istediğimiz biçimde kategorileri çekip, yazdırabiliriz. Benim yaptığım örneğin görüntüsü şöyle:

Tabloları Bağlama Ekran Görüntüsü

Kendi sitemde içeriklerin kategorilerini ve etiketlerini çekerken tamamen bu yöntemle çekiyorum.
Yaptığım uygulamayı (access veritabanı ile) buradan indirebilirsiniz.
İyi Çalışmalar!
Mehmet Duran 24 Ağustos Pazar 2008 8 34454 4,8
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Asp.net ve MySql ile Üyelik (MemberShip) Sistemini Kullanma Asp.net ve Mysql ile Dataları Sayfalama İşlemi Asp.net ile MySql Veritabanının Yedeğini (Dump) Alma Microsoft Yaz Okulu İlk Haftanın Ardından Asp.net ile Arşiv Bölümü Hazırlama - Örnek Uygulama
Yorumlar
Yorum Yaz
RSS Yorum Takibi
MUHAMMED 16 Ekim Perşembe 2008 16:18 #1
ÇOK GÜZEL İSİM PEYGAMBER EFENDİMİZİN İSMİ
kadri 10 Ocak Pazar 2010 22:57 #2
eywallah mehmet abi 2den fazla tabloda left join örneği arıodum iyi geldi saol
mehmet 27 Mart Cumartesi 2010 15:08 #3
iyi gunler hocam
databasede uyelere ait iki tablom var profil ve onlara ait ozgecmis tabloları(profil tablosu:pid,email,isim,soyisim,yas,...vb---
ozgecmis tablosu: oid,isim,egitim_bilgileri,is_deneyim.......vb )kolanlar var.
kisi siteye uye oldugu zaman profil bilgileri doldurduktan sonra profil sayfasına gidiyor ardında ozgecmis olusturuyor kendisine.Bu iki tabloyu nasıl baglayabilirm ve profil sayfasında uyenin profil bilgilerini ve ozgecmis bilgilerini nasıl gosterebilirim.
Mehmet Duran 28 Mart Pazar 2010 00:10 #4
Bu soruyu sorduğuna göre veritabanı konusunda biraz daha bilgi sahibi olman gerektiği anlaşılıyor. Bunun için de veritabanı konusunda ilişkileri incelemen gerekir. Sormuş olduğun yapı için öncelikle kullanıcıların bilgilerini ayrı bir tabloda tutman gerekir. Her kullanıcının gerçek hayatta kimlik numarasının yerine koyabileceğimiz bir numarası olmalı. Bu numaraya göre diğer tablolarda (profil, özgeçmiş, vb.) kullanıcılara ait verileri tutabilirsin. Bunun için de her kullanıcıya ait olan numarayı diğer tablolarda foreign key olarak tanımlamalısın. Verileri alırken de kullanıcılar tablosundaki kullanıcı numarasını veri çekmek istediğin tablolarla ilişkilendirmen gerekir. Bu şekilde biraz anlaşılmayabilir ama burada bahsettiğim yapıları, konuları biraz araştırır ve örnekler inceleyebilirsen rahatlıkla anlayabilirsin.
Gökhan 05 Aralık Pazar 2010 16:24 #5
Allah Razı olsun MySql'e çevirdim çok işime yaradı
Hüseyin Körpeoğlu 26 Şubat Cumartesi 2011 02:06 #6
eline sağlık başkan açık, netve gayet anlaşılır. Eline sağlık...
Analyzer 26 Şubat Cumartesi 2011 09:12 #7
Mehmet burada on baglantilar.kategori_id=haberler.haber_id satırı sanırım yanlış yazılmış. baglantilar.haber_id olmayacak mıydı?
Mehmet Duran 08 Nisan Cuma 2011 22:28 #8
@Analyzer, sorguda bir problem yok gibi. Zaten ekran görüntüleri çalışan sorgunun görüntüleridir.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Hata yapmayan bir insan genellikle hiçbirşey yapmıyordur.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009