目前,我正在建立一个招聘平台.雇主可以发布工作并接收申请.雇主可以设置求职者必须匹配的许多技能要求.求职者还可以增加他们拥有的许多技能.

我想找出的是,每个求职者技能中有多少与每个工作的owner_requirements相匹配,以便在视图中显示百分位数匹配.理想情况下,我想根据基于jobseeker_skills表和loyer_requirements表中的skill_string查找匹配项

这是3个表中每个表的数据库排列:

应用范围:

id | job_string | jobseeker_string |雇主字符串| application_string |创建日期

雇主要求:

id | skill_name | required_level | skill_string | job_string |雇主字符串|创建日期

jobseeker_skills:

id | skill_name |级别| jobseeker_string | skill_string |字符串创建日期

我有以下代码,它基于传递的’$job_str’获取所有应用程序.下面的代码只是一个简单的获取,但不确定从这里出发.

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 |雇主字符串|

——– —————— —————— —— ————

| 1 | vs71FVTBb12DdGlf | uMIsuDJaBuDmo8iq | biQxyPekn6iayIgm |

| 2 | vs71FVTBb12DdGlf | x7phHsVnwJ1K1yHy | biQxyPekn6iayIgm |

| 3 | vs71FVTBb12DdGlf | Fm1TIJLxz6Xg6QPk | biQxyPekn6iayIgm |

——– —————— —— —– ——— —- ——–

雇主要求-样本数据:

——– —————— ————- ———– ——- ——————

| id | job_string | skill_name | skill_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 |骨干| 4VIiAxZoL1VbPnTa |

| 3 | x7phHsVnwJ1K1yHy |较少| 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 |

——– —————— —— —– ——— —- ——–

基于以上内容,这应该输出百分比或否.匹配技能:

应用程序-以下是每种应用程序匹配技能的数量/百分比:

uMIsuDJaBuDmo8iq-1/6(16.666%)

x7phHsVnwJ1K1yHy-2/6(33.333%)

Fm1TIJLxz6Xg6QPk-3/6(50%)

如有任何疑问,请开除.感谢您的帮助.

解决方法:

首先,这是两个问题:

>哪些申请人最适合我的业务

>哪些雇主最适合我的技能.

这两个问题可能看起来相同,但事实并非如此.

第一个问题:

我希望所有符合我的任何要求的申请人,按照我所拥有的要求的数量排序.首先我得到所有比赛:

select *

from Requirements r

inner join Jobseeker j

on r.skill_string = j.r.skill_string

where job_string = 'vs71FVTBb12DdGlf';

然后我将em分组,计数em等:

select

jobseeker_string,

count(1) / (select count(1) from Requirements where job_string = 'vs71FVTBb12DdGlf') as match_percentage

from Requirements r

inner join Jobseeker j

on r.skill_string = j.r.skill_string

where job_string = 'vs71FVTBb12DdGlf'

group by jobseeker_string;

第二个问题:有点困难,因为申请人可能想知道他/她是否符合一定比例的工作技能,但也符合他自己的技能(这可能也适用于第一个问题).查询如下:

select

job_string,

count(1) / (select count(1) from Requirements where jobseeker_string = 'uMIsuDJaBuDmo8iq') as my_match,

count(1) / (select count(1) from Requirements where job_string = r.job_string) as job_match

from Requirements r

inner join Jobseeker j

on r.skill_string = j.r.skill_string

where jobseeker_string = 'uMIsuDJaBuDmo8iq'

group by job_string;

请注意:查询是写在我头上的,可能包含一些错字

如果要订购,可以这样:

select * from

([[insert the above query here]]) t

order by field.

合并:

select

job_string,

jobseeker_string

count(1) / (select count(1) from Requirements where jobseeker_string = r.jobseeker_string ) as seeker_match,

count(1) / (select count(1) from Requirements where job_string = r.job_string) as job_match

from Requirements r

inner join Jobseeker j

on r.skill_string = j.r.skill_string

group by job_string, jobseeker_string;

应用程序

select * from

(select

job_string,

jobseeker_string

count(1) / (select count(1) from Requirements where jobseeker_string = r.jobseeker_string ) as seeker_match,

count(1) / (select count(1) from Requirements where job_string = r.job_string) as job_match

from Requirements r

inner join Jobseeker j

on r.skill_string = j.r.skill_string

group by job_string, jobseeker_string) t

inner join applications a

on t.job_string = a.job_string and t.jobseeker_string = a.t.jobseeker_string

标签:active-record-query,codeigniter,sql,mysql,database

来源: https://codeday.me/bug/20191121/2055444.html

mysql如何按行数匹配,mysql-将许多行与SQL查询中的许多行匹配,并找到百分位数匹配?...相关推荐

  1. mysql多个on_在多个查询中插入多行的MySQL ON DUPLICATE KEY UPDATE

    我有一个SQL查询,我想在单个查询中插入多行.所以我用了类似的东西: $sql = "INSERT INTO beautiful (name, age) VALUES ('Helen', 2 ...

  2. FineReport帆软报错:很抱歉,数据集行数过多触发保护机制,请减少查询数据量。若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制。

    使用帆软时候,数据集记录数过多时候,FineReport帆软报错,如下: 很抱歉,数据集行数过多触发保护机制,请减少查询数据量.若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制. 如下图所 ...

  3. vba ado 执行多条mysql 语句,Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结...

    原标题:Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结 本章概要: 1,几个概念 1.1, 数据库和Excel工作簿 1.2,数据表和Excel工作表 1.3,记录.字段 ...

  4. sql删除表中重复记录_SQL从SQL表中删除重复行的不同方法

    sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows f ...

  5. mysql and 和where,关于mysql:连接sql查询中where和and子句的区别

    本问题已经有最佳答案,请猛点这里访问. 下面两个SQL查询有什么区别 和 号 根据以下两个测试结果 速度更快(237比460).据我所知,这是一个标准. . 氧化镁 不,有细微的差别,你不能说没有差别 ...

  6. mysql的井号如何写入_井号保存为SQL数据库中的问号

    我在这上面搜索了一段时间,但似乎没有一个足够相关.在 基本上,我有一个从程序中提取的csv文件.我编写了一个快速的python程序,将csv文件转换为sql文件,以便将其导入数据库.然后,我使用win ...

  7. webstorm代码行数统计_来测试下 2019 你一共写了多少行代码?

    写啊写代码,2019 你都写了多少行代码呢 自己动手实现一个代码统计工具 导入所需的库 这个程序需要用到的库有:os,time 这两个库都是 Python 自带的,所以我们直接 import 就行 i ...

  8. 数据库信息 (表名 行数 堆 集群 非聚集)的查询

    /************************************************************ * Time: 2010-10-07 13:23:32 * 找出有索引的表信 ...

  9. SQL查询结果限制返回行数

    语法实现: select col_name from table_name limit i,n 1.limit子句可以背英语强制select语句返回指定行数. 2.limit后跟一个参数或两个参数: ...

最新文章

  1. 【ICML2021】学习权衡不完美的示范
  2. 山东大学计算机考博难度,山大博士发11篇SCI,坦言刚读研时自己也很迷茫
  3. Leetcode39.Combination Sum组合总和
  4. JDK 6中新增的Java Console类功能概览
  5. 18awg线材最大电流_小米生态链拉车线:2.4A大电流,苹果MFi认证,高速充电不断裂...
  6. requests由于系统缓冲区空间不足_系统C盘满了空间不足的扩容?
  7. 你的Android应用完全不需要那么多的权限
  8. Mysql-centos下的安装
  9. matlab 随机森林 分类,randomforest-matlab 随机森林分类器的MATLAB代码 - 下载 - 搜珍网...
  10. 如何下载行政区划数据
  11. javafx 与java,java桌面应用程序和javafx有什么区别?
  12. idea导出Oracle表结构和数据
  13. linux查看系统内存
  14. 计算机一级如何添加对角线,如何在表格中添加对角线
  15. 当免费模式遭遇安全价值观
  16. 0-c语言入门这一篇就够了-学习笔记(一万字)
  17. Windows10下安装VS2015和Caffe
  18. PAT(乙级)2019年春季考试 7-5 校庆
  19. laravel框架搭建voyager
  20. iOS开发- 生成/解析.vcf文件

热门文章

  1. 福利放送 | 免费赠送《校园招聘实践指南》电子书
  2. UVA1103古代象形文字識別
  3. 搜狗输入法简约而美的皮肤推荐
  4. hbuilderx如何连接夜神处理器实现模拟安卓的效果
  5. 支持linux的usb无线网卡芯片,Realtek RTL8188CUSamp;RTL8188ETV 型芯片USB无线网卡驱动程序for Linuxamp;Android...
  6. mysql applier_DRC 是唯品会自研的MySQL双向复制方案,主要应用场景是数据库双向复制、单向复制...
  7. 流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)
  8. 新西兰证券交易所遭受一系列 DDoS 攻击
  9. 八爪鱼采集教程——房源信息采集
  10. iOS 越狱开发那些事儿之二