如我有如下表:
表1
id  姓名  性别  生日  ....
1   小王    男  84    .... 
2   小张    男  85    .... 
3   小李    女  86    .... 
4   小王    妇  85    ....后面....也就是说表还没有其他字段现在要求是
查询出表中不同姓名的记录,如果有姓名重复取第一个像上面的表查询出来为表1
id  姓名  性别  生日  ....
1   小王    男  84    .... 
2   小张    男  85    .... 
3   小李    女  86    .... 也就是小王有相同的那就不显示后面出现的小王的记录谢谢分少,但很急谢谢

解决方案 »

  1.   

    写法有很多,但效率最高的恐怕就是这个了.SELECT a.* FROM tb1 a
    INNER JOIN
    (SELECT MIN(id),姓名 FROM tb1 GROUP BY 姓名) b
    ON a.id=b.id --如果id不是标识列,并且可能重复的话,请加上条件 AND a.姓名=b.姓名
      

  2.   

    回复楼上
    至少一个参数没有被指定值
    因为(SELECT MIN(id),姓名 FROM tb1 GROUP BY 姓名) 这里好像没有ID
      

  3.   

    打忘了不好意思.手误SELECT a.* FROM tb1 a
    INNER JOIN
    (SELECT MIN(id) id,姓名 FROM tb1 GROUP BY 姓名) b
    ON a.id=b.id