私は一種の旅行「デート」アプリを書いています。
- ユーザーが自分で登録する
- ユーザーが男性か女性かをアプリに伝える
- ユーザーは、訪問したい国をアプリに伝えます
- ユーザーは、男性 (pref_m=1) または女性 (pref_f=1) と旅行するかどうかをアプリに伝えます。
マイ テーブル
表 1: ユーザー
id (key) | gender | pref_m | pref_f
------------------------------------
1 male 1 0
2 male 1 1
表 2: 国選択
id (key) | userid | countryid
------------------------------------
1 1 123
2 1 111
3 1 100
4 1 110
5 2 123
6 2 111
7 2 202
8 2 210
では、selectステートメントが何をしなければならないか
入力:現在のユーザーのユーザー ID
出力 (ロジック内):私と同じ国に旅行したい、私の性別を持つ人と旅行したい
(参加する)すべての人のユーザー ID と一致する国を選択します。選択 明らかに、探している性別の人だけが必要です。
私と最も一致する国を持つ人々によって注文されました DESC.
私がこれまでに持っているもの(警告:あまりありません)
$sql = "SELECT userid,count(*) AS matches from countryselection";
これにより、私と同じ国に旅行したいすべての人のリストが表示されます (そして、共通の国がいくつあるか)
$sql .= " WHERE countryid IN (SELECT countryid FROM countryselection WHERE userid = :userid) GROUP BY userid ORDER BY matches DESC;";
最後の注意事項
私は明らかに性別選択の部分に苦労しています。
私が持っている方法でユーザーの選択を保存するために正しいことをしたかどうかはわかりません。
私もそこにいくつかのガイダンスが必要な場合があります。
明らかに - すべてに感謝します。