在尝试匹配其他两个表之间的多对多关系时,我遇到了复杂的MySQL查询问题。
如果有人能给我一些帮助,我将不胜感激!
我的问题:
我目前有5张桌子:
行业
+----+----------------------------------+
| ID | Name |
+----+----------------------------------+
| 1 | Accountancy, Banking and Finance |
+----+----------------------------------+
用户
+----+-----------+--------------------+
| ID | Name | Email |
+----+-----------+--------------------+
| 1 | Joe Smith | joesmith@email.com |
+----+-----------+--------------------+
工作
+----+-------------------+------------------+
| ID | Title | Description |
+----+-------------------+------------------+
| 3 | Financial Analyst | Example job desc |
+----+-------------------+------------------+
注册时,用户选择他们感兴趣的多个行业。由于这是多对一关系,因此这些首选项将存储在新表user_interests中,作为用户每个行业的行有兴趣。
user_interests
+----+--------+------------+
| ID | userID | industryID |
+----+--------+------------+
| 3 | 1 | 2 |
+----+--------+------------+
| 4 | 1 | 4 |
+----+--------+------------+
当雇主创建新工作时,他们会设置该工作所在的多个行业。然后以相同的方式将其保存为job_interests表中的多个行。
job_interests
+----+-------+------------+
| ID | jobID | industryID |
+----+-------+------------+
| 3 | 2 | 2 |
+----+-------+------------+
| 4 | 2 | 3 |
+----+-------+------------+
当用户搜索角色时,查询应返回所有作业,其中该作业的job_interest与该用户的至少一个user_interest匹配。
我不确定从哪里开始这个问题,以及我是否首先适当地构造了数据库以适应这种搜索。
对这个问题的任何帮助将不胜感激,谢谢!