【发布时间】:2014-03-30 21:34:04
【问题描述】:
目前我正在建立一个招聘平台。雇主可以发布工作并接收申请。雇主可以设置求职者必须匹配的许多技能要求。求职者还可以添加他们拥有的许多技能。
我试图找出每个 jobseekers_skills 中有多少与每个作业的 employer_requirements 匹配,以便在视图中显示百分位数匹配。理想情况下,我希望根据jobseeker_skills 表和employer_requirements 表中存在的skill_string 找到匹配项
这是 3 个表中每一个的数据库排列:
应用:
id | job_string | jobseeker_string | employer_string | application_string | date_created
雇主要求:
id | skill_name | requirement_level | skill_string | job_string | employer_string | date_created
求职者技能:
id | skill_name | level | jobseeker_string | skill_string | string | date_created
我有以下代码,它根据传递的“$job_str”获取所有applications。下面的代码只是一个简单的get,但不确定从这里去哪里。
function skills_match($job_str){
$this->db->select('*')
->from('applications')
->where('job_string', $job_str)
->join('users', 'users.string = applications.jobseeker_string', 'left');
$applications = $this->db->get();
return $applications;
}
应用程序表 - 示例数据:
+--------+------------------+------------------+------------------+
| id | job_string | jobseeker_string | employer_string |
+--------+------------------+------------------+------------------+
| 1 | vs71FVTBb12DdGlf | uMIsuDJaBuDmo8iq | biQxyPekn6iayIgm |
| 2 | vs71FVTBb12DdGlf | x7phHsVnwJ1K1yHy | biQxyPekn6iayIgm |
| 3 | vs71FVTBb12DdGlf | Fm1TIJLxz6Xg6QPk | biQxyPekn6iayIgm |
+--------+------------------+------+-----+---------+-------+------+
雇主要求 - 样本数据:
+--------+------------------+-------------+------------------+------------------+
| id | job_string | skill_name | skill_string | employer_string |
+--------+------------------+-------------+------------------+-----------------+|
| 1 | vs71FVTBb12DdGlf |PHP | 9Y8XeCWqJXzkZ5dD | biQxyPekn6iayIgm |
| 2 | vs71FVTBb12DdGlf |JavaScript | O6es19t5CgcRHvct | biQxyPekn6iayIgm |
| 3 | vs71FVTBb12DdGlf |HTML | wx4evsXC62BWiN7p | biQxyPekn6iayIgm |
| 4 | vs71FVTBb12DdGlf |Python | jx15rH1vrGLmsVmq | biQxyPekn6iayIgm |
| 5 | vs71FVTBb12DdGlf |SQL | EksP7mEip0Hs4zKd | biQxyPekn6iayIgm |
| 6 | vs71FVTBb12DdGlf |LESS | fj40m4hkiuDGtbzr | biQxyPekn6iayIgm |
+--------+------------------+-------------+------+-----+---------+-------+------+
求职者技能 - 样本数据:
+--------+------------------+------------------+------------------+
| id | jobseeker_string | skill_name | skill_string |
+--------+------------------+------------------+------------------+
| 1 | uMIsuDJaBuDmo8iq | PHP | 9Y8XeCWqJXzkZ5dD |
| 2 | uMIsuDJaBuDmo8iq | Backbone | 4VIiAxZoL1VbPnTa |
| 3 | x7phHsVnwJ1K1yHy | LESS | fj40m4hkiuDGtbzr |
| 2 | x7phHsVnwJ1K1yHy | Ruby | gTZg4fwYuzMMFcBw |
| 3 | x7phHsVnwJ1K1yHy | SQL | EksP7mEip0Hs4zKd |
| 1 | Fm1TIJLxz6Xg6QPk | PHP | 9Y8XeCWqJXzkZ5dD |
| 2 | Fm1TIJLxz6Xg6QPk | Python | jx15rH1vrGLmsVmq |
| 3 | Fm1TIJLxz6Xg6QPk | HTML | wx4evsXC62BWiN7p |
| 3 | Fm1TIJLxz6Xg6QPk | Git | aR9B9ns1sHlGrzFw |
+--------+------------------+------+-----+---------+-------+------+
根据以上内容,this 应该输出百分比或数字。匹配的技能:
应用程序 - 以下是每个应用程序匹配技能的数量/百分比:
uMIsuDJaBuDmo8iq - 1/6 (16.666%)
x7phHsVnwJ1K1yHy - 2/6 (33.333%)
Fm1TIJLxz6Xg6QPk - 3/6 (50%)
任何问题,然后请开火。提前感谢您的帮助。
【问题讨论】:
-
能否提供几行样本数据,几行想要的结果?
-
@OllieJones 我刚刚使用示例数据和预期结果的简要摘要进行了编辑,如果您需要其他任何内容,请尽管询问。
-
@OllieJones 明确表示,我仍然希望获得特定工作的所有申请,但只是
order_by具有最佳匹配技能的求职者 -
@OllieJones 我很好奇你是否对这个问题有任何见解,因为我在过去 2 天里一直被困并且无处可去
标签: mysql sql database codeigniter active-record-query