人不在单位。。没有MYSQL。用EXCEL代替一下图片
目的就是现在有A和B两个表。
如图所示。。
要做一个触发器,当A表插入数据时从属别和分组关联表B,然后在B里筛选出公里标与A表里程数最接近数值的行与A表一起输出到表C。
新手对<>筛选近似值语句不太会用。求帮助
人不在单位。。没有MYSQL。用EXCEL代替一下图片
目的就是现在有A和B两个表。
如图所示。。
要做一个触发器,当A表插入数据时从属别和分组关联表B,然后在B里筛选出公里标与A表里程数最接近数值的行与A表一起输出到表C。
新手对<>筛选近似值语句不太会用。求帮助
上午就看过你的问题了,当时我看到之后也是想的笛卡尔积关联,找最小的差的绝对值来确定最接近的数,但是我看了一下a表数据量,当时说的1000多,b表有7W多,然后别的就没了。我就把这个方案否了。想着做个函数,来取这个最近接的数。上午你把最关键的漏掉了,你既然有这个属别,那你数据范围一下子就缩小了啊,唉...你的问题给的信息太少了。不过就像上午你给的那些信息,我也想出了一个方案。写一个自定义函数就可以实现了。参数就是里程数,以这个参数作为一个数据范围条件,比如说between 里程数 - 10 and 里程数 + 10,这样作为取b表数据的范围条件,当然我这里假设半径的是10啊,根据你的业务来看,应该没有这么大,这个要根据你的数据来设置,数值越小,效率越高,前提就是b表在这个范围内是有数据的,然后你就完全可以把a表里的里程数作为参数和b表里这个范围内的数据比较,找出最接近的,full一次那个7万,再关联一次很小的数据,都是秒级的。然后返回b表里最近接的公里标。然后这个函数就OK了。函数用的时候就直接用这个函数和b表的公里标作为关联条件,然后取ab表对应的字段就行了。