INNER JOIN en çok kullanılan tablo birleştirme yöntemidir. İki tablo arasında birleştirme yaparken, tabloların her ikisinde de yer alan değerler seçilir, tablolardan sadece birinde yer alıp diğerinde ilişkili değere rastlanılmayan satırlar seçilmez. Aşağıdaki örnekte urunler ve markalar isimli iki tablo kullanılmıştır.
Aşağıdaki gibi bir sorgu yazıp execute dediğimizde urunler tablosunda bulunan urunmarkaKod ve markalar tablosunda markaKod alanının eşleştiği satırları görmekteyiz.
1 2 3 4 5 | Select u.urunKod,u.urunAd,u.urunFiyat,m.markaAd from urunler u inner join markalar m on u.urunMarkaKod=m.markaKod |
ya da
1 2 3 4 5 | Select urunler.urunKod,urunler.urunAd,urunler.urunFiyat,markalar.markaAd from urunler inner join markalar on urunler.urunMarkaKod=markalar.markaKod |
şeklinde sorgumuzu oluşturabiliriz. Sadece iki tabloyu JOIN edebiliriz diye bir kısıtlama yoktur. İkiden fazla tabloyuda ihtiyacımıza göre JOIN edebiliriz.
Benim bir access veri tabanım var. Veri tabanının içinde iki table var. Birinin adı fotograflar diğeride kisiler. Ben kişiler id ile foto id yi relationship te bağladım. Şunu yapmak istiyorum. Kaydederken nasıl kaydedebilirim. Örneğin;
string sorgu = “Insert into Kisiler (ad,soyad,telefon) values (@Ad,@Soyad,@Telefon)”;
komut = new OleDbCommand(sorgu, baglanti);
komut.Parameters.AddWithValue(“@Ad”, textBox1.Text);
komut.Parameters.AddWithValue(“@Soyad”, textBox2.Text);
komut.Parameters.AddWithValue(“@Telefon”, textBox3.Text);
komut.ExecuteNonQuery();
Ama aynı zamanda fotograflar bir sekmem var. Kaydet dediğim de hem kişiyi hem de resimlerin resim yolunu kaydedicek. “insert into kisiler INNER JOIN fotograflar” mı demem lazım? Ne yapmam gerekiyor? Lütfen yardımcı olabilir misiniz?
kişiler tablosunda id, ad, soyad, telefon alanları fotograf tablosunda kisiid ve foto alanı mı mevcut. Sadece resim yolu eklemek için 2 tabloya gerek yok aslında ama iki tabloyla çalışacaksanız iki tablo içinde normal şekilde kayıt yaptırabilirsiniz. verileri çekerkende aşağıdaki örnekten faydalanabilirsiniz.
http://www.yazilimkodlama.com/programlama/c-iliskili-tablolardan-veri-cekme/
Ayrı ayrı table’larım var. fotograflar ve kisilerim diye. kaydet dediğim nasıl ayrı ayrı kaydedebilirim peki?
üstad bugün yardımcı olabilirsen çok sevinirim. Fakat imkanın yoksa yapabileceğim birşey yok. Yine de çok çok teşekkür ederim ilgin için.
Aşağıdaki SQL sorgusunu denermisiniz.
INSERT INTO T1 SELECT *FROM T2
Üstad tamamdır desteğin için çok çok çok teşekkür ediyorum.
Üstad bir sorum olacak. Bir database de sütun isimleri aynı 2 tablom var (T-1 ve T-2 diyelim.) T-2 deki tüm satırları T-1’e nasıl aktarabilirim.
T-1
Payment_Id Location_Id Sublocation_Id Payment_Type Payment_DateTime
1 550102 0 0 1/24/2016 0:18
2 550102 0 0 1/24/2016 0:20
T-2
Payment_Id Location_Id Sublocation_Id Payment_Type Payment_DateTime
50 550102 0 0 5/26/2016 0:18
51 550102 0 0 5/26/2016 0:20
Benim yapmak istediğim
T-1
Payment_Id Location_Id Sublocation_Id Payment_Type Payment_DateTime
1 550102 0 0 1/24/2016 0:18
2 550102 0 0 1/24/2016 0:20
50 550102 0 0 5/26/2016 0:18
51 550102 0 0 5/26/2016 0:20
Yani T-1 tablom yeni bir tablo T-2 tablom eski bir tablo
Ben iki tabloyu T-1 tablosunda birleştirmek istiyorum.
Her iki tablodada ayni id li kayitlar bulunuyormu?
hayır payment ID kayıtları farklı
Bugun ilgilenme firsatim yok. Acil degilse yarin ilgilenebilirim.
eşleştirme yapmak istemiyorum tabloları birleştirmek istiyorum