多个数据匹配

hooit 2008-07-03 03:00:54
有两个表ta和tb
两表的属性列一样:id(int) hh(int) jj(int) kk(int) mm(int) nn(int)
现要从表ta中取出一组数据,分别与表tb中的每一组进行比较,求出匹配度最高的前5组数据
匹配项:hh jj kk mm nn
匹配要求:hh必须完全相等;jj可以不完全相等,但误差不能超过1;kk mm nn可以不完全相等,但误差不能超过2;
匹配优先级:hh jj kk mm nn(由高到低)

不知道我的意思说清楚了没有,还请高人指点。
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ten789 2008-07-04
  • 打赏
  • 举报
回复
SELECT * FROM a,b
WHERE
(b.hh = a.hh) and
((b.jj > a.jj-1) and (b.jj < a.jj+1)) and
((b.kk > a.kk-2) and (b.kk < a.kk+2)) and
(...........)

应该可以 呵呵 用 IN 可能会更直接一些
system_007 2008-07-04
  • 打赏
  • 举报
回复
up
fxs_2008 2008-07-04
  • 打赏
  • 举报
回复
楼上强!
上面的能解决a与b中匹配的个数

将上面的结果保存为临时表 tem_table


再来个分组统计排序试试


select count(hh) count,* from tem_table group by hh order by count desc limit 5;
hooit 2008-07-03
  • 打赏
  • 举报
回复
多谢,去那边看看。
fxs_2008 2008-07-03
  • 打赏
  • 举报
回复
撑不起来,可去算法区看看
这么提问:两个数组匹配,其他如你所提
hooit 2008-07-03
  • 打赏
  • 举报
回复
俯卧撑
hooit 2008-07-03
  • 打赏
  • 举报
回复
21世纪什么最可怕?
自己顶自己最可怕!




----------------------------------------
我做着俯卧撑去打酱油,酱油很黄,俯卧撑很暴力!

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧