一个SQL取值的问题
有个表如下: 
 id是主键,pid是另一个表的主键   
 id            pid            layer         title            content                              datetime 
 1                  1                     0                     AA                     AAAA                     2007-07-01   19:20 
 2                  1                     1                     AA                     AAAA                     2007-07-01   19:20 
 3                  1                     1                     ABC                  ABCD                     2007-07-04   19:20 
 4                  2                     0                     BB                     BBBB                     2007-08-01   19:20 
 5                  2                     1                     BB                     BBBB                     2007-08-01   19:20 
 6                  2                     1                     BCD                  BCDE                     2007-08-05   19:20   
 其中第一条和第二条纪录是一样的,除了主键和layer值不一样, 
 第四和第五条也是一样的,除了主键和layer值不一样   
 现在想取得的效果是:去掉第二条和第五条纪录,取其它的。 
 也就是在相同的pid纪录里面,如果有两条纪录除id和layer不同,其它都一样的,就去掉layer值是1的那条
------解决方案--------------------是我的话 我查都不要他查入这样的冗淤数据
------解决方案--------------------DELETE FROM  [表] where id in(SELECT max(a.id) FROM  [表] a ,[表] b where a.pid=b.pid  group by a.title having count(a.pid)> 1)
------解决方案--------------------SQL里不是有一个  distinct 的函数去掉相同值的吗?   
 另外,因为你的自动增长列不同,所以如果select * 的话,是永远不会有相同值的!
------解决方案--------------------mark
------解决方案--------------------select distinct pid,title,content,datetime from table1
------解决方案--------------------select min(id) as id,pid,min(layer) as layer,title,content,datetime 
 from table1 
 group by pid,title,content,datetime 
------解决方案--------------------select * 
 from table1 group by pid,title,content,datetime where layer=1