Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Sql Join yardım?

Bu joinle hiç aram yok..

Arkadaşlar 2 tablom var birinden Ad,SoyAd diğerinden en yüksek 10 puanı çağırmak istiyorum tablo isimleri ve kolon isimleri şöyle

isim tablosu ismi kullanici

kolon adları userId Ad,Soyad

Puan Tablosu ismi skor

kolon adları userID,skor


2 tablodaki userId ve userID Foreign Key ilişkisi var..

Not: Bir kullanıcı birden fazla puan almış olabilir yani bir oyunununda 20,diğer oyununda 30 Çağırırken bu 30'u cagırıcagız..

ve En yüksekten en aşağı sıralayacağız Bunun Join'i nasıl olur bi yardım

Hatta örnek olsun diye kullanici ismi vereyim 2 tane

 
1. KİŞİ
1. tablo  userId: 5 Ad: fatih SoyAd kaplan
2. tablo userID: 5 skor: 20
             userID: 5 skor:30

2. KİŞİ
1. tablo userId:6 Ad, Emre Soyad:Kaplan
2. tablo userID:6 skor 40
             userID:6 skor60;


JOIN sonrası Şöyle Görünsün
En yüksekten aşağı

Emre Kaplan 60    Hem kendi puanlarının en yükseği gelsin hem en yüksekten büyğe sıralasın.. 
Fatih Kaplan 30   Örneğim anlaşılmıştır herhalde

+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Kemal adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    63 cevap - 10 soru
    select ka.userId, ka.Ad, ka.Soyad, us.userID, us.skor from kullanici ka LEFT JOIN skor us ON us.userID=ka.userId order by us.skor desc

    sorununuzu yanlış anlamadıysam bu şekilde bir sorgu kullanıp verilerinizide
    kolon isimlerinizle ulaşabilirsiniz sutunlarda benzerlik var ise örneğin Ad kolonundan iki tablodada var
    ka.Ad USERNAME
    "USERNAME" şeklinde yeni kolon ismi verip ulaşıp yazdırabilirsiniz
    • psygnosis adlı üyenin fotoğrafı psygnosis
      şimdi buna benzer bende yaptım bu tüm puanlarını getiriyor bir üyenin mesela 25 ide getiriyor 50 yi de getiriyor.. Kullanıcının sadece en yüksek puanlarını sıralamak istiyorum
      10 yıl önce yazılmış
    • Kemal adlı üyenin fotoğrafı Kemal
      bunun bir çok yöntemi var
      1- sorgunun sonuna "limit 1" ekleyerek
      2-SELECT MAX(us.skor) AS enyuksekpuan ekleyerek
      gibi dahada çözüm üretilebilir.
      10 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      birde senin yaptıgın tek kişi için herhalde bunu 10 kişi arasında nasıl yaparız mesela hepsinin en yüksek puanlarını sıralarsak
      10 yıl önce yazılmış
    • Kemal adlı üyenin fotoğrafı Kemal
      select DISTINCT us.ad from kullanici ka LEFT JOIN skor us ON us.userID=ka.userId order by us.skor desc limit 0,10
      şeklinde denemeniz mümkünmü
      10 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      lmit te sorun cıkarıyor.. Burda distinct 2 tane gelen veriyi tek yazdırmak için kullandın herhalde.. tmm adlarda yapılır bu ama mesela emre öztürk 25 emre öztürk 30 sen burda distinct dersen bu puanlarıda daha sıralama yapmadan kaldırcak.. yanlışmı düşünüyorym
      10 yıl önce yazılmış