sql去重并且显示所有字段,怎么实现?

对学员进行去重,但是要考虑到重名的学生,然后去重后把所有字段显示出来

image.png

这是所有字段

18568453967 发布于 2019-3-1 10:18
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
tinydataLv4见习互助
发布于2019-3-1 10:35

学员去重,正常的做法的是 控制学员id,这个id是保证唯一性的基础。

之后就是简单的sql distinct了

  • 18568453967 18568453967(提问者) 主要是没有主键,学生没有唯一的id
    2019-03-01 10:53 
  • tinydata tinydata 回复 18568453967(提问者) 那就提取其他可以唯一表示的信息,比如 手机号, 或入学年+系编号+班级号+其班级 比如 20180123 2018(年)01(班)23(号学生)。再或者 姓名+手机后4位 等等方式不限。自己组一个可以唯一标识学生的
    2019-03-01 11:13 
  • 18568453967 18568453967(提问者) 回复 tinydata select * from 签约 where (SELECT DISTINCT `学员`,`校区`,`登记人` FROM 签约) 能不能写个这样的逻辑关系,但是这个是不对的,查询所有,但是条件是去重的.
    2019-03-01 11:50 
  • tinydata tinydata 回复 18568453967(提问者) CONCAT(str1, str2),, , ,对这几个字段进行组合,再distinct select distinct CONCAT(`学员`,`校区`,`登记人`), `学员`,`校区`,`登记人` from 签约
    2019-03-01 12:34 
  • 18568453967 18568453967(提问者) 回复 tinydata 能不能具体点,新手有点看不懂,要不你给写出来把
    2019-03-01 14:18 
最佳回答
0
黄源Lv6中级互助
发布于2019-3-1 10:34

把学生表的主键查出来去重,存学生的表总不会没主键涩

  • 18568453967 18568453967(提问者) 没有主键可咋整??
    2019-03-01 10:53 
  • 黄源 黄源 回复 18568453967(提问者) ........这个就麻烦了,不能确定唯一难免会出问题
    2019-03-01 10:55 
  • 18568453967 18568453967(提问者) 回复 黄源 select * from 签约 where (SELECT DISTINCT `学员`,`校区`,`登记人` FROM 签约) 能不能写个这样的逻辑关系,但是这个是不对的,查询所有,但是条件是去重的
    2019-03-01 11:46 
  • 3关注人数
  • 1070浏览人数
  • 最后回答于:2019-3-1 10:35
    请选择关闭问题的原因
    确定 取消
    返回顶部