このようなもの。
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)