MySQL:根据不同表中的多行返回结果

时间:2019-02-04 23:11:20

标签: mysql

在尝试匹配其他两个表之间的多对多关系时,我遇到了复杂的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匹配。

我不确定从哪里开始这个问题,以及我是否首先适当地构造了数据库以适应这种搜索。

对这个问题的任何帮助将不胜感激,谢谢!

0 个答案:

没有答案