• 18-11-2021, 22:28:47
    #1
    Merhabalar;
    Başlıkta da belirttiğim üzere, aşağıda belirttiğim yapıdaki 2 tablodan bir tanesindeki değeri baz alarak buna foreign_key yapısı ile bağlı diğer tablodan istediğim sütundaki veriyi almaya çalışıyorum. JOİN kavramlarını kafamda en başından beri doğru düzgün oturtamadım, biraz daha hakim olsam belki olacak ama yapamadım. Dediğim gibi tek bir sorguda yapılıp yapılamayacağını bilmek istiyorum.
    Birinci tablo yapısı - accounts tablosu
    account_id | user_id | name
    1 |1 |hesap_adı_1
    .... |.... |....
    12 |1 |hesap_adı_2

    İkinci tablo - profil tablosu
    profil_id | account_id | alliance
    1 |12 |alliance_name_1
    2 |15 |alliance_name_2

    accounts tablosundaki account_id ile, profil tablosundaki account_id FOREIGN_KEY ile bağlılar.

    Sorum şu: elimde sadece turuncu yazılı 'hesap_adı_2' verisi ile yeşil yazılı 'alliance_name_1' verisine TEK SORGUDA ulaşmam mümkün mü?

    (İlk tablodaki user_id, users adında başka bir tabloya bağlı, o şu an için önemsiz. Ama eğer bir WHERE koşulu olursa onu da farklı sorgularda SESSION daki user_id değeri ile eşleyebilirim)
  • 18-11-2021, 22:38:07
    #2
    Abdullahx adlı üyeden alıntı: mesajı görüntüle
    Merhabalar;
    Başlıkta da belirttiğim üzere, aşağıda belirttiğim yapıdaki 2 tablodan bir tanesindeki değeri baz alarak buna foreign_key yapısı ile bağlı diğer tablodan istediğim sütundaki veriyi almaya çalışıyorum. JOİN kavramlarını kafamda en başından beri doğru düzgün oturtamadım, biraz daha hakim olsam belki olacak ama yapamadım. Dediğim gibi tek bir sorguda yapılıp yapılamayacağını bilmek istiyorum.
    Birinci tablo yapısı - accounts tablosu
    account_id | user_id | name
    1 |1 |hesap_adı_1
    .... |.... |....
    12 |1 |hesap_adı_2

    İkinci tablo - profil tablosu
    profil_id | account_id | alliance
    1 |12 |alliance_name_1
    2 |15 |alliance_name_2

    accounts tablosundaki account_id ile, profil tablosundaki account_id FOREIGN_KEY ile bağlılar.

    Sorum şu: elimde sadece turuncu yazılı 'hesap_adı_2' verisi ile yeşil yazılı 'alliance_name_1' verisine TEK SORGUDA ulaşmam mümkün mü?

    (İlk tablodaki user_id, users adında başka bir tabloya bağlı, o şu an için önemsiz. Ama eğer bir WHERE koşulu olursa onu da farklı sorgularda SESSION daki user_id değeri ile eşleyebilirim)

    SELECT a.account_id,a.user_id,a.name,p.profil_id,p.account_id,p.alliance FROM accounts_tablosu a INNER JOIN profil_tablosu p ON a.account_id = p.account_id
  • 18-11-2021, 22:39:54
    #3
    Merhaba;
    Profile tablosundaki account_id ile accounts tablosundaki account_id birbiri ile eşleştiğinden, inner join işlemine de bunu belirtmeniz gerekiyor.
    where koşulunda @sessiondanGelecekUserId kısmına da uygulamanızda bulunan session'daki user_id'yi gönderebilirsiniz.
    NOT: MSSQL'e göre yazılmıştır.


    select a.name, p.alliance from accounts as a
    inner join profile as p on p.account_id = a.account_id
    where a.userid= @sessiondanGelecekUserId
  • 18-11-2021, 22:44:55
    #4
    Select a. name, p.name
    from inner join p.account_id=a.account_id
    where a.account_id=12

    gibi bir kodla mümkün olabilir hocam sorguyu direkt denemedim syntax olarak hatalı olabilir ama mantığı bu şekilde diye biliyorum. Dipçe: "a." account table temsil ediyor "p." profile table ı temsil ediyor.
  • 18-11-2021, 22:49:25
    #5
    Herkese cevabı için çok teşekkür ediyorum. @BarisSa; arkadaşın cevabında gerekli modifikasyonları yaparak sanırım istediğim sonuca ulaştım.