select distinct * from Key_Accommodation as a left join Key_Attractions as b on a.Key_ID=b.Key_ID left join Key_TeamPlan as c on b.Key_ID=c.Key_ID where c.Key_ID='17'
现在的查询出来的结果 会出现三个key_ID Team_ID  这两个字段三个表中都有?
我想查询出来的结果没有重复列怎么做呢?(意思就是key_ID,Team_ID只出现一次)

解决方案 »

  1.   

    select distinct a.key_ID,a.Team_ID  from Key_Accommodation as a left join Key_Attractions as b on a.Key_ID=b.Key_ID left join Key_TeamPlan as c on b.Key_ID=c.Key_ID where c.Key_ID='17'
      

  2.   

    参考去除重复精华帖where not exists(....)
      

  3.   

    select distinct a.key_ID,a.Team_ID  from
    Key_Accommodation as a left join Key_Attractions as b on a.Key_ID=b.Key_ID 
    left join Key_TeamPlan as c on b.Key_ID=c.Key_ID where c.Key_ID='17'
      

  4.   

    -- 如果这三个表都是以Key_ID和Team_ID作组合主键的话,可以多加个联结条件:
    select *
    from Key_Accommodation as a 
     left join Key_Attractions b on a.Key_ID=b.Key_ID and a.Team_ID=b.Team_ID
     left join Key_TeamPlan c on a.Key_ID=c.Key_ID and a.Team_ID=c.Team_ID
    where c.Key_ID='17';
      

  5.   

    不要select * 啊吧你需要的字段一个个写出来列出来
      

  6.   

    select distinct a.* from ...
    select distinct b.* from ...
    select distinct c.* from ...
    三个语句随便选一个
      

  7.   

    select *
    from Key_Accommodation as a 
     left join Key_Attractions b on a.Key_ID=b.Key_ID and a.Team_ID=b.Team_ID
     left join Key_TeamPlan c on a.Key_ID=c.Key_ID and a.Team_ID=c.Team_ID
    where c.Key_ID='17';
      

  8.   

    select key_ID,Team_ID from (select distinct * from Key_Accommodation as a left join Key_Attractions as b on a.Key_ID=b.Key_ID left join Key_TeamPlan as c on b.Key_ID=c.Key_ID where c.Key_ID='17')a
      

  9.   


    select distinct a.key_ID,a.Team_ID ,b.[其它字段],c.[其它字段] from
    Key_Accommodation as a left join Key_Attractions as b on a.Key_ID=b.Key_ID 
    left join Key_TeamPlan as c on b.Key_ID=c.Key_ID where c.Key_ID='17'
      

  10.   

    SELECT DISTINCT *
    FROM Key_Accommodation AS a
    LEFT JOIN Key_Attractions AS b
    ON a.Key_ID = b.Key_ID
    LEFT JOIN Key_TeamPlan AS c
    ON b.Key_ID = c.Key_ID
    WHERE c.Key_ID = '17'  --这样写WHERE的话,可以用inner join了
    GO
    --去重复的话,把字段名列出来
    SELECT DISTINCT A.Key_ID, A.Team_ID, A.OtherFieldList, B.OtherFieldList, C.OtherFieldList
    FROM Key_Accommodation AS a
    INNER JOIN Key_Attractions AS b
    ON a.Key_ID = b.Key_ID
    INNER JOIN Key_TeamPlan AS c
    ON b.Key_ID = c.Key_ID
    WHERE c.Key_ID = '17'
    GO