कुछ इस तरह।
Select people.id, people.name, count(interest.id)
from people
left join people_interests on people.id = people_interests.peopleid
left join interests on people_interests.interestid = interests.interest.id
where interests.id in (select id from interests where interests.peopleid = @inputuserid)
group by people.id, people.name
order by count(interest.id)
अंग्रेजी में (जो इसे स्पष्ट कर भी सकता है और नहीं भी।)
- व्यक्ति का नाम और उनके द्वारा साझा की जाने वाली रुचियों की संख्या चुनें
- लोगों की तालिका से
- रुचि तालिका में इस तरह शामिल हों कि वह तालिका
- क्या केवल उस व्यक्ति के हित हैं जो हम मिलान करने का प्रयास कर रहे हैं।
- (लोगों द्वारा समूह
- और मेल खाने वाली रुचियों की संख्या के अनुसार क्रमित करें।)
उप क्वेरी के बिना अपडेट किया गया लेकिन कम स्पष्ट
Select people.id, people.name, count(interest.id)
from people
left join people_interests on people.id = people_interests.peopleid
left join interests on people_interests.interestid = interests.interest.id
inner join interest i2 on (interests.id = i2.id and i2.people_id = @inputuserid)
group by people.id, people.name
order by count(interest.id)