我正在编写一种旅行“约会”应用程序。
- 用户自行注册
- 用户告诉应用他们是男性还是女性
- 用户告诉应用他们想访问哪些国家
- 用户告诉应用他们想与男性 (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;";
最后注
我显然在性别选择部分苦苦挣扎。
不确定我是否做了正确的事情来以我的方式存储用户选择。
我可能也需要一些指导。
显然 - 谢谢大家。