inner join ile 3 tabloya bağlanmak
#1
merhaba.
inner join ile 3 tabloya bağlanmak istiyorum.
kendi tablom(mytable) ve diğer 3 tablo ayni vt de(sdf)

kendi tablomdaki mytable1_id 'i tablo1 deki tablo1_id' e
kendi tablomdaki mytable2_id 'i tablo2 deki tablo2_id' e
kendi tablomdaki mytable3_id 'i tablo3 deki tablo3_id' e
ayni sorguda bağlamak istiyorum.
Nasıl yapabilirim tşekkür ederim.Smile






  Alıntı
Bu mesajı beğenenler:
#2
merhaba
seçim sorgusumu çalıştırmak istiyorsunuz bu şekilde
SQL
  1. SELECT [gösterilercek alanlar] FROM mytable m INNER JOIN table1 t1 ON m.mytable1_id=t1.table1_id
  2. INNER JOIN table2 t2 ON m.mytable2_id=t2.table2_id INNER JOIN table3 t3 ON m.mytable3_id=t3.table3_id;



gösterilecek alanları tablo kısaltması ve o tablodaki alan ismi ile kendiniz belirleyebilirsiniz örneğin mytable tablosundaki ( m olarak kısalttık) ad alanını m.ad şeklinde ifade edebilirsiniz
kolay gelsin



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Tornado;
Yanıtınız için teşekkür ederim.Smile
Aşğaıdaki sorgunun mytable tablosunun m olarak kısaltılmış halini verdiğiniz söylemişsiniz.
Acaba mümkünse kısaltma yapmadan nasıl yazılabilir?
Yani şuradaki durumu anlamak için dedim.
Aşağıdaki m kalkacakmı?
SQL
  1. FROM mytable m INNER JOIN



(01-03-2011, 20:50)Tornado demiş ki: merhaba
seçim sorgusumu çalıştırmak istiyorsunuz bu şekilde
SQL
  1. SELECT [gösterilercek alanlar] FROM mytable m INNER JOIN table1 t1 ON m.mytable1_id=t1.table1_id
  2. INNER JOIN table2 t2 ON m.mytable2_id=t2.table2_id INNER JOIN table3 t3 ON m.mytable3_id=t3.table3_id;



gösterilecek alanları tablo kısaltması ve o tablodaki alan ismi ile kendiniz belirleyebilirsiniz örneğin mytable tablosundaki ( m olarak kısalttık) ad alanını m.ad şeklinde ifade edebilirsiniz
kolay gelsin




  Alıntı
Bu mesajı beğenenler:
#4
birden fazla tabloyu bir arada kullandığımızda tablolardaki alanları tablo isimleriyle birlikte ifade etmemiz gerekebilir (özellikle birleştirilen tablolarda aynı isimde alanlar varsa hangi tabloya ait alanı ifade ettiğimizi göstermek için)
mesela mytable tablosundaki mytable1_id alanını sorgu sonucunda göstermek için
select ifadesinden sonra sadece mytable1_id ifadesini kullanmamız yeterli olabilir
ama sorguda birden fazla tablo varsa ve mytable bu tablolardan birisiyse aynı alanı göstermek için mytable.mytable1_id ( tabloAdı.kayitAlani) şeklinde kullanmamız daha doğru olur bu şekilde çok sayıda varsa ifadeleri kısalmak için tablo ismini takma isim atarız
funun içinde tablo ismini kullandığımız yerde mytable m veya mytable as m gibi ifadeler kullanabiliriz. buradaki m mytable tablosunu ifade eden bir kısaltmadır artık birden fazla tabloyu birleştirdiğimiz durumlarda mytable.mytable1_id yerine m.mytable1_id kullanabiliriz.
sorgunun kısaltma olmadan yazılan hali
SQL
  1. SELECT [gösterilercek alanlar] FROM mytable INNER JOIN table1 ON mytable.mytable1_id=table1.table1_id
  2. INNER JOIN table2 ON mytable.mytable2_id=table2.table2_id INNER JOIN table3 ON mytable.mytable3_id=table3.table3_id;


şeklinde olacaktır.
[gösterilecek alanlar] kısmında sorgu sonucunda hangi alanları göstermek istiyorsanız ekleyebilirsiniz mesela table3 tablosundaki table3_id alanını göstermek için table3.table3_id yazabilirsiniz.



  Alıntı
Bu mesajı beğenenler:
#5
Sayın tornado;
Çok teşekkür ederim .
Açılamalarınız çok faydalı oldu.
Son verdiğiniz sorguyu görünce ilk verdiğinizi daha iyi anladım.
Bende zaten onun için istemiştim onu.Yalın şekilde nasıl olur diye.
Ondan sonra zaten temelde meselyi anladıkmı bir daha gerekli kurallara uyarak her türlü taklayıda atabilirz.
teşekkürler tekrar.Smile
Not : iyi Tornado avları dilerim.Smile



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  INNER JOIN ve FROM Kısmından Sonrasını Belirlemek monelogg 0 953 20-05-2013, 09:19
Son Mesaj: monelogg
  inner join ile diğer 2 tablodan bağlantı yapmak Orion 2 2.635 17-10-2010, 20:24
Son Mesaj: Orion
  SQL Right Join Yardım cnone 1 2.419 10-05-2010, 00:35
Son Mesaj: Taruz

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi