sql - Friend relationship query -
मेरे पास निम्न तालियां हैं:
USERS
तालिका
मित्रों
टेबल
- आईडी
- user_id
- मित्र_id
- बनाया
एक उपयोगकर्ता के मित्र ढूंढने के लिए, मैं इसका उपयोग करता हूं:
सेलेक्ट f.friend_id, u.username मित्रों से जुड़ें मित्रों से जुड़ें m.user_id = f.friend_id और m.friend_id = F.user_id उपयोगकर्ता यू यूस पर यूज़ करें यू.युजर_आईडी = एफ.फ्रेंड_आईडी WHERE f.user_id = 1234
... जो महान काम करता है
ISSUE
मैं अन्य तरीकों से एक समान क्वेरी को समझ नहीं सकता, हालांकि उन सभी उपयोगकर्ताओं को ढूंढें, जो अभी तक मित्र नहीं हैं। यह कुछ के साथ, सभी दोस्तों को प्राप्त करना होगा, सभी उपयोगकर्ताओं को प्राप्त करना होगा, सभी उपयोगकर्ताओं को छोड़ दें, जो शेष छोड़ने के लिए मित्र हैं?
SELECT u1.username, u2.username as notfriend से यूजर यूओ यूओ यूजर यू 2 पर यू 1। यूजर। यूअर यूआई.यूएसयूआईयूआईडी यूआई.यूएसएआरआईआईडी यूआई.युजर.आईएडी = एफ 1 पर दोस्तों एफ 1 पर जुड़ें .user_id और u2.user_id = f1.friend_id बाएं जुड़ें मित्रों को यू 2 पर दोहराएं f2.user_id = f2.user_id और u1.user_id = f2.friend_id जहां u1.user_id = 1234 और (f1.user_id IS नल या f2.user_id IS नल है)
दोस्तों के लिए:
SELECT u1.username, u2.username के मित्र के रूप में उपयोगकर्ता यूएओ यूओ यूज़र यू 2 पर यूयू.युजर.आईडर यूआई.युजर.आईडी! दोस्तों f1 u1.user_id = f1.user_id और u2.user_id = f1.friend_id जुड़ें दोस्तों f2 पर u2.user_id = f2.user_id और u1.user_id = f2.friend_id जहां u1.user_id = 1234
Comments
Post a Comment