表A 里面有 name,id 两列他们的对应关系如下是多对多 ,很混乱
name id
张三 1
张三 3
张三 2
李四 2
李四 1
王五 1
王五 3
王五 6我现在要用表A里面的name和id ,张三。李四。王五 各取一组数据出来 ID随便配一个对应的就行
如
张三,3
李四,2
王五,6
sql语句该如何写,求教了~
name id
张三 1
张三 3
张三 2
李四 2
李四 1
王五 1
王五 3
王五 6我现在要用表A里面的name和id ,张三。李四。王五 各取一组数据出来 ID随便配一个对应的就行
如
张三,3
李四,2
王五,6
sql语句该如何写,求教了~
另外楼主的结帖率有点低啊。
没有必要用group by name;
select name , max(id) id from tb group by name--如果不止name,id两个字段。
select t.* from tb t where id = (select max(id) from tb where name = t.name)
select t.* from tb t where not exists (select 1 from tb where name = t.name and id > t.id)
答案会有重复数据
如3楼说 再如果id都有重复的 可以试下partition