lostyazilim
tr.link

asp ve join sorunu

8 Mesajlar 1.084 Okunma
lstbozum
tr.link

ynskrkmz ynskrkmz WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum Manisa
  • Ad Soyad Y** K**
  • Mesajlar 27
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
arkadaşlar merhaba asp ile bir sistem hazırlıyorum 3 farklı tabloyu join ile bir birine bağlayarak veri listelemem gerek fakat bir tabloyu ikikez bağlamam gerekiyor sorun yaşıyorum

tablo bir = fxtr_oynanacak_maclar
tablo iki = fxtr_takimlar
tablo üç = fxtr_stadyumlar

şimdi join ile bağlantıyı anlatıyorum

fxtr_oynanacak_maclar maçları liseliyorum fxtr_stadyumlar ile id leri eşleştirip stad adlarını yazdırıyorum aynı şekilde fxtr_takimlar tablosu ile birleştirip evsahibi_takim_id ile birleştirip ev sahibi takımıda yazdırıyorum

son olarak fxtr_oynanacak_maclar tablosundaki misafir_takim_id fxtr_takimlar tablosundaki takımla birleştirip karşılıklı takımları yazdırmak isiyorum ama son işlemi yapamadım.

kodlarım şu şekilde


<% takimid = ysadres(request.QueryString("takimid"))
Set rstkm = Server.CreateObject("ADODB.Recordset")
sql = "Select o.fxtr_maclar_id,o.fxtr_id,o.sezon_id,o.grup_id,o.mac_oynama_tarihi,o.mac_oynama_saati,o.oynanacak_stad_id,o.ev_sahibi_takim_id,o.ev_sahibi_takim_gol,o.misafir_takim_gol,o.misafir_takim_id,o.durum, s.stad_id,s.stad_adi, t.takim_id,t.takim_adi from fxtr_oynanacak_maclar o left JOIN fxtr_stadyumlar s ON o.oynanacak_stad_id = s.stad_id left JOIN fxtr_takimlar t ON o.ev_sahibi_takim_id = t.takim_id where (o.ev_sahibi_takim_id = "&takimid&" or o.misafir_takim_id = "&takimid&") and o.sezon_id = "&aktfsznid&" and o.durum = 1 order by o.fxtr_maclar_id asc "
rstkm.Open sql, bag, 1, 1%>


çıktım


tarih saat stad adı ev sahibi takım gol - gol misafir takım
10.01.2019 15:30 15 nisan stadı a takımı 5 - 1 ?? sorun

misafir takıma bağlayamadım

yani demem lazımki misafir_takim_id = takim_id sonucu yazdır tabi takim_adi birkze ev sahibi takıma yazılmış ikinci kolona cekmek için değişken mi yapmak lazım nasıl çözüm olur

şimdiden çok teşekkürler
 

 

wmaraci
reklam

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1118
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
Select a.felanca, b.felanca from

maclar as a
inner join takimlar as b on a.takim1id = b.id
inner join takimlar as c on a.takim2id = c.id
inner join stadlar as d on d.id = a.stadid
 

 

www.ontedi.com
www.cizgi.site

ynskrkmz ynskrkmz WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum Manisa
  • Ad Soyad Y** K**
  • Mesajlar 27
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
hocam dediğin gibi böyle çözdüm ama

<% takimid = ysadres(request.QueryString("takimid"))
Set rstkm = Server.CreateObject("ADODB.Recordset")
sql = "Select o.fxtr_maclar_id,o.fxtr_id,o.sezon_id,o.grup_id,o.mac_oynama_tarihi,o.mac_oynama_saati,o.oynanacak_stad_id,o.ev_sahibi_takim_id,o.ev_sahibi_takim_gol,o.misafir_takim_gol,o.misafir_takim_id,o.durum, s.stad_id,s.stad_adi, t.takim_id,t.takim_adi from fxtr_oynanacak_maclar o left JOIN fxtr_stadyumlar s ON o.oynanacak_stad_id = s.stad_id left JOIN fxtr_takimlar t ON o.ev_sahibi_takim_id = t.takim_id left JOIN fxtr_takimlar z ON o.ev_sahibi_takim_id = z.takim_id where (o.ev_sahibi_takim_id = "&takimid&" or o.misafir_takim_id = "&takimid&") and o.sezon_id = "&aktfsznid&" and o.durum = 1 order by o.fxtr_maclar_id asc "
rstkm.Open sql, bag, 1, 1%>


altta takımları <%=rstkm("takim_adi")%> olarak yazıyorum iki sutundada ev sahibi takımı adı yazılıyor
 

 

aturkoglu aturkoglu WM Aracı Kullanıcı
  • Üyelik 07.08.2011
  • Yaş/Cinsiyet 39 / E
  • Meslek Serbest Meslek Erbabı
  • Konum Ankara
  • Ad Soyad A** T**
  • Mesajlar 212
  • Beğeniler 15 / 70
  • Ticaret 20, (%100)
İkinci kez
left JOIN fxtr_takimlar z ON o.ev_sahibi_takim_id = z.takim_id
Yazdığında o.ev_sahibi_takim_id değil o.misafir_takim_id üzerinden bağla
Yani
left JOIN fxtr_takimlar z ON o.misafir_takim_id = z.takim_id

Bir de left join değil inner join kullan. Left join bağladığın tabloda değer olmaması ihtimali durumunda kullanılır
 

 

wmaraci
wmaraci

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1118
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
Ayni sutunlar geliyorsa, alias "as" kullanarak farkli bir isimle cagirabilirsin.
 

 

www.ontedi.com
www.cizgi.site

ynskrkmz ynskrkmz WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum Manisa
  • Ad Soyad Y** K**
  • Mesajlar 27
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
hocam dediğin düzeltmeyi yaptım ama yine karşılıklı a takımı a takımı b takımı b takımı c takımı c takımı yapıyor

benim anladığım kadarı ile takim_adi alta yazdırdığım için ilk joinin işlemini alıyor orada bir değer atamak lazım sql içinde sutun adına değişkne tanımlayabiliyormuyuz

yani takim_id misafir_takim_id - takim_adi misafir_takim_adi na dönüşsün

aşağıdada <%=rs("misafir_takim_adi")%> gibi yazdırsam çözüm olacak bence ama mümkünmü bilmiyorum
 

 

ynskrkmz ynskrkmz WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum Manisa
  • Ad Soyad Y** K**
  • Mesajlar 27
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
bu şekilde düzenledim ama yine hata verdi

<% takimid = ysadres(request.QueryString("takimid"))
Set rstkm = Server.CreateObject("ADODB.Recordset")
sql = "Select o.fxtr_maclar_id,o.fxtr_id,o.sezon_id,o.grup_id,o.mac_oynama_tarihi,o.mac_oynama_saati,o.oynanacak_stad_id,o.ev_sahibi_takim_id,o.ev_sahibi_takim_gol,o.misafir_takim_gol,o.misafir_takim_id,o.durum, s.stad_id,s.stad_adi, t.takim_id,t.takim_adi, z.takim_id as yeni_takim_id,z.takim_adi as yeni_takim_adi from fxtr_oynanacak_maclar as o left JOIN fxtr_stadyumlar as s ON o.oynanacak_stad_id = s.stad_id left JOIN fxtr_takimlar as t ON o.ev_sahibi_takim_id = t.takim_id left JOIN fxtr_takimlar as z ON o.misafir_takim_id = z.yeni_takim_id where (o.ev_sahibi_takim_id = "&takimid&" or o.misafir_takim_id = "&takimid&") and o.sezon_id = "&aktfsznid&" and o.durum = 1 order by o.fxtr_maclar_id asc "
rstkm.Open sql, bag, 1, 1%>

busefer sayfa çalışmadı
 

 

ynskrkmz ynskrkmz WM Aracı Kullanıcı
  • Üyelik 12.07.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum Manisa
  • Ad Soyad Y** K**
  • Mesajlar 27
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
tamamdır oldu hocam allah razı olsun
 

 

wmaraci
wmaraci
Konuyu toplam 8 kişi okuyor. (0 kullanıcı ve 8 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al