मेरा MySQL टेबल संरचना इस तरह है।एसक्यूएल उपयोगकर्ता के दोस्तों और दोस्तों के दोस्तों को पाने के लिए
USER
int id
varchar username
FRIEND_LIST
int user_id
int friend_id
प्रत्येक मित्र संबंध के लिए मैं एफआरआई में 2 रिकॉर्ड डालता हूं END_LIST। उपयोगकर्ता 1 उपयोगकर्ता 2 के दोस्त तो अगले पंक्तियों FRIEND_LIST
1,2
2,1
मैं मित्रों और दोस्तों को एक विशिष्ट उपयोगकर्ता के दोस्तों में से प्राप्त करना चाहते हैं में डाला जाता है है।
चयन कॉलम ए, बी, सी वापस करना चाहिए।
a: user_id
b: friend_id
c: username (username of friend_id)
If 1 is friend of 2 and 3.
2 is friend of 3, 4 and 5
3 is friend of 5,6,7
फिर क्वेरी मिल 1 के दोस्तों और दोस्तों के दोस्तों में से लौटना चाहिए करने के लिए:
1 2 two
1 3 three
2 1 one
2 3 three
2 4 four
2 5 five
3 1 one
3 5 five
3 6 six
3 7 seven
मैं किसी एक क्वेरी के साथ इस पंक्तियों मिल सकता है?
अद्यतन उत्तर: मैंने डीवीके के उत्तर को थोड़ा सा संशोधित किया और यह वह प्रश्न है जो मैं देख रहा था।
SELECT friends.user_id, friends.friend_id, username
FROM
FRIEND_LIST friends, USER
WHERE
CAT_USER.id = friends.friend_id
AND
friends.user_id = 1
UNION
SELECT
fof.user_id, fof.friend_id, username
FROM
FRIEND_LIST friends, FRIEND_LIST fof, USER
WHERE
USER.id = fof.friend_id
AND
friends.friend_id = fof.user_id
AND
friends.user_id = 1;
मैं पहली बार क्वेरी करने की कोशिश की, लेकिन यह कहना है कि user_id अस्पष्ट – Enrique
मैं पहली बार प्रयोग करेंगे प्रश्न, दूसरे ने मुझे गलत परिणाम दिए। बहुत बहुत धन्यवाद! – Enrique