SELECT * FROM T_ARTICLE  WHERE (N_ARTICLEID
   in  ( SELECT  DISTINCT C_TITLE, N_ARTICLEID  FROM T_ARTICLE  GROUP BY C_TITLE,N_ARTICLEID) )
   ORDER BY N_ARTICLEID DESC    

解决方案 »

  1.   

    SELECT * FROM T_ARTICLE  WHERE (N_ARTICLEID
       in  ( SELECT  DISTINCT  N_ARTICLEID  FROM T_ARTICLE  GROUP BY N_ARTICLEID) )
       ORDER BY N_ARTICLEID DESC  
    in,前后的字段要对应,前面是N_ARTICLEID ,后面选择出来的必须也是N_ARTICLEID
      

  2.   

    C_TITLE   是不是应该抹了啊
      

  3.   

    select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。
    要不然把C_TITLE去掉,要不就把它放在GROUP BY 后面
      

  4.   

    SELECT * FROM T_ARTICLE  WHERE ( (c_TITLE,N_ARTICLEID)
       in  ( SELECT  DISTINCT C_TITLE, N_ARTICLEID  FROM T_ARTICLE  GROUP BY C_TITLE,N_ARTICLEID) )
       ORDER BY N_ARTICLEID DESC
    这样试下 你子查询是出来的是分组排序后不重复的两个字段的值  而你拿一个字段的值去跟两个字段的值比较肯定会出错 ,    
      

  5.   

    这样是不行的 你用一个字段去和两个字段去比较.  
    试着把C_TITLE 去掉. SELECT * FROM T_ARTICLE  WHERE (N_ARTICLEID
       in  ( SELECT  DISTINCT N_ARTICLEID  FROM T_ARTICLE  GROUP BY C_TITLE,N_ARTICLEID) )
       ORDER BY N_ARTICLEID DESC  
      

  6.   

    子查询返回两列当然会报错。而且即使没有语法错误,楼主这么写也相当于没有查询条件,显示的是T_ARTICLE 表的全部内容。另外 用了distinct 就没必要再group by了,效果是一样的。