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只出现一次)
现在的查询出来的结果 会出现三个key_ID Team_ID 这两个字段三个表中都有?
我想查询出来的结果没有重复列怎么做呢?(意思就是key_ID,Team_ID只出现一次)
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'
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';
select distinct b.* from ...
select distinct c.* from ...
三个语句随便选一个
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';
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'
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