Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

SQL sorgusu


SpiderS_DangeR

Öne çıkan mesajlar

Öncelikle db'nin sqlite olduğunu belirteyim.

Şimdi diyelimki elimizde 3 table var,
1. personalInfo // burda personID, firstName, lastName vs. var
2. refs // burda referenceID, firstName, lastName vs var
3. references_person_link // burda da personID ile referenceID var linklemek için (1 kişinin birden fazla referansı olabiliyor)

Şimdi istediğim şey personalInfodan sadece personID'yi alıp (her personID için) refs tablosundan o personID ile bağlantılı olan referansları almak(isim, soyisim, numara falan tablodaki herşey).
30 çeşit join olunca kafam baya bi karıştı.
He bir de references_person_link tablosunun parentTable'ı personalInfo, childKey'i ReferenceID, parentKey'i de personID olarak yapmışım zamanında, yanlış da olabilir siz mantığı anladınız hehe
Link to comment
Sosyal ağlarda paylaş

detayli bakamadim ama yanlis anlamadiysam istedigin bu


select * from personalInfo
left join references_person_link on personalInfo.personID = references_person_link.personID
left join refs on refs.referenceID = references_person_link.referenceID


istersen inner join de yapabilirsin ama diger tablolarda esi olmayan person bilgisi gelmez.
Link to comment
Sosyal ağlarda paylaş

select p.personID, r2.* from personalInfo p
left join references_person_link r1 on personalInfo.personID = references_person_link.personID
left join refs r2 on refs.referenceID = references_person_link.referenceID

Tekil bi kayıt için istiyosan, atıyorum personID'si 50 olan adam için, query'nin sonuna where p.personID = 50 yazarsın gg
Link to comment
Sosyal ağlarda paylaş

Kojiroh said:

select p.personID, r2.* from personalInfo p
left join references_person_link r1 on personalInfo.personID = references_person_link.personID
left join refs r2 on refs.referenceID = references_person_link.referenceID

Senin dediğin gibi yapınca no such a column personalInfo.personID dedi sonra aşağıdaki gibi değiştirince düzeldi ama bunun mantığını bi ara açıklaman lazım bana sfd

select p.personID, r2.* from personalInfo p
left join references_person_link r1 on p.personID = r1.personID
left join refs r2 on r2.referenceID = r1.referenceID
Link to comment
Sosyal ağlarda paylaş

Orda her seferinde adlarını uzun uzun yazmamak için tablolara alias veriyosun. "select * from personalInfo p..." olduktan sonra artık personalInfo.bilmemne değil de p.bilmemne yazıyosun kolonlarla ilgili bi şey yapacağın zaman.

Mesela ben kopi peyst yaparken ordaki personalInfo'yu unutmuşum o yüzden patlamış. p demek gerekiyodu onun yerine.

Select'ten sonraki ilk kısımda da (p.personID, r2.*) hangi kolonları seçmek istediğini belirtiyosun işte. r2'den yani refs'ten tüm kolonlar gelsin, p'den yani personalInfo'dan sadece personID'si gelsin
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...