目前我正在構建招聘平臺。僱主可以發佈工作並接收申請。僱主可以設置求職者必須匹配的許多技能要求。求職者也可以添加他們擁有的許多技能。匹配SQL查詢中許多行的許多行並找到百分比匹配?
我試圖找出每個jobseekers_skills
匹配employer_requirements
爲每個工作,以顯示視圖中的百分比匹配。我會非常想找到基於skill_string
存在於這兩個比賽中jobseeker_skills
表和employer_requirements
表
下面是各3個表的數據庫安排:
應用:
id | job_string | jobseeker_string | employer_string | application_string | date_created
employer_requirements:
id | skill_name | requirement_level | skill_string | job_string | employer_string | date_created
jobseeker_skills:
id | skill_name | level | jobseeker_string | skill_string | string | date_created
我有下面的代碼,獲取基於其上通過的 '$ job_str' 所有applications
。下面的代碼只是一個簡單的獲取,但不確定從哪裏去。
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 | +--------+------------------+------+-----+---------+-------+------+
這應該輸出eit她的一個百分比還是沒有。匹配的技能:
應用 - 下面是匹配的技能,爲每個應用程序的數量/百分比: uMIsuDJaBuDmo8iq - 1/6 (16.666%) x7phHsVnwJ1K1yHy - 2/6 (33.333%) Fm1TIJLxz6Xg6QPk - 3/6 (50%)
任何問題,那麼請離火。感謝您的幫助提前。
您能否提供幾行樣本數據,以及幾行所需的結果? –
@OllieJones我剛剛對樣本數據進行了編輯,並對預期結果進行了簡要總結,如果您需要其他內容,請隨時詢問。 – learn
@OllieJones爲了說清楚,我仍然想要獲得某項工作的所有應用程序,但只有'order_by'具有最佳匹配技能的求職者 – learn