难题征求最佳解决方案
我的数据库中几个人员表
一个是市人武部干部
一个是基层人武干部
一个是科技人员
一个是退役军人
因为是数据是分次收集,按用户的工作计划分别收集。因此,各个表之间有重复数据,字段不一样(单位,姓名,生日,文化程度,政治面貌等字段相同)即科技人员有可能是基层干部,也同时可能是退役军人,或者是市人武干部,退役军人可能是科技人员,而且可能在基层做干部,也可能不做干部。从集合的角度来看,找不到能不重复又能构成人员全集的组合。
表与表完全是交叉重复,不是包含。
现在要查询数据库中不同文化程度/政治面貌...有多少人并列出数据。
我看只能按姓名+生日来去重。
但是,怎么写这个SQL语句呢?
还是把所有表的相同字段数据都取出来放入一个临时表,再对临时表去重?——对于大量的数据来说好象不太妙——我做的这个是网络版的,MYSQL在网络服务器上。
此外,用户要求能给出一定条件如专业,从各个单位随机抽指定的人数,所抽人数不能超过给定的比例,由于没有一个确切的人员全集,必须到这些表里去分别找,同样有重复问题,此操作必须在上一步的基础上做,如何随机抽取呢?