Bu sorunu çözdüğümü doğrulayan bir sql deyimi nasıl yazılır. Bir kullanıcının adını ve aşağıdaki gibi bir kullanıcının FRIENDNAME içerirler bir sosyal ağ ve friends
tabloda kullanıcıların kullanıcı adı oluşan users
tablo ...Oracle SQL, ağımdaki kullanıcının (yani arkadaşların veya arkadaşların arkadaşının)
username friendname
John Thomas
Chris James
Verilen ... Bir SQL deyimi yazmaya çalışıyorum Bir kullanıcı ağımdaysa bu olur. Başka bir deyişle, , kullanıcı arkadaş mı, arkadaş mı?
Bu sorunu gidermek dans ediyoruz ve sadece bu sorgu ile gelebilir: false eğer benim arkadaşımın arkadaşı ise bir kullanıcı yani sadece boş dönerseniz
SELECT f2.username, f2.friendname
FROM friends f2
WHERE f2.username IN (
SELECT f1.friendname
FROM friends f1
WHERE f1.username = 'Thomas')
AND f2.friendname <> 'user1'
AND f2.friendname = 'user2';
Temelde kontrol edin.
Tüm arkadaş ağım boyunca ilerlemek için nasıl genişleyebileceğimi anlamaya çalışıyorum. Yani sadece arkadaşımın arkadaşı değil. Gerektiğinde düzey
Ancak oracle O sql iş için beni görünüyor – Mark
sizi aramayan seviyesini yapacak böylece tarafından bağlamak kullanarak Hiyerarşik sorgusu var kullanabilirsiniz. Tamam, kullanıcı adı FRIENDNAME bu tabloyu verilen hayal Thomas Alice Aylin Ali'nin Bob Jo Jo –
@user yanlıştır Thomas ağı içinde değil belirten hiçbir şey vermek = 'Jo' myname = Thomas ve FRIENDNAME o sql çalıştırma: mi arkadaşlık ilişkiniz simetrik mi? Yani, eğer 'Alice' Thomas'ın arkadaşıysa, '' Alice'in '' Alice''in arkadaşı da mı? Onun olduğuna inanıyorum, ama belirtmek daha iyidir. – Quassnoi