我觉得如果是连接查询的话field应该这样写:
SELECT DISTINCT table1.field1, table2.field2 INNER JOIN table1 ON ...
                               INNER JOIN table2 ON ...
                               ......
你试试吧,我以前也遇见过

解决方案 »

  1.   

    把你的完整SQL语句贴上来好吗,那样更容易看明白问题
      

  2.   

    SELECT DISTINCT field1, field2 from table1 
                                   INNER JOIN table2 ON ...
                                   ......select后面得先跟个表再去join其它表的
      

  3.   

    对不起,写错了,我是这样写的:
    SELECT DISTINCT table1.field1, table2.field2 FROM table1 
           INNER JOIN table2 ON table1.fieldN=table2.fieldN 
           INNER JOIN table3 ON table2.fieldX=table3.fieldX
           INNER JOIN table4 ON table3.fieldY=table4.fieldY
    用SQL Server的事件探查器跟踪后发现在table2.field2后加上了" , * ".
    如果去掉所加的", *"结果是正确的,我不明白为什么会自动加上一个*号.
      

  4.   

    distinct关键字只能约束一个字段,如果有两个字段,则自动失效,成为select * ......
    请使用如下语句:
    SELECT DISTINCT table1.field1, field2=(select table2.field2 from table1 INNER JOIN table2 ON table1.fieldN=table2.fieldN) FROM table1 
           INNER JOIN table3 ON table2.fieldX=table3.fieldX
           INNER JOIN table4 ON table3.fieldY=table4.fieldY