person と favorites という 2 つのテーブルの間に多対多の関係があります。私は3つの列を持っています:
person_id int(8)
favorites_id int(8)
is_main_favorite enum('y','n')
なので:
person_id | favorite_id | is_main_favorite
2 | 1 | 'y'
2 | 2 | 'n'
3 | 1 | 'n'
3 | 2 | 'n'
1 | 1 | 'y'
1 | 2 | 'y'
PHPとMySQLを使用しています。
person_id
have ( favorite_id
1 と 2 を一緒に) を取得しperson id
、 have moreis_main_favorite ='y'
で結果を並べ替える方法は次のとおりです。結果は次のようになります。
person_id
1 (because he has favorite_id 1 and 2 and have two is_main_favorite = 'y')
2 (because he has favorite_id 1 and 2 and have one is_main_favorite = 'y')