加入不正确获取数据

时间:2015-07-23 11:20:03

标签: sql sql-server sql-server-2008 tsql

我编写了一个类似下面的代码的程序。

SELECT CountryID,
CountryName, 
CountryCode,
Longitude,
Latitude,
CreatedBy,
CreatedOn,
UpdatedOn,
UpdatedBy
FROM Country AS C
WHERE EXISTS (SELECT TOP 1 1 
            FROM    Cause CS
            WHERE   CS.CountryName like C.CountryName
        )

基本上有两个表Country包含CountryIDCountryName字段,Cause包含三个字段:CauseIdCauseName和{{ 1}}。

我正在尝试获取所有分配到原因的国家/地区。上面的代码无效。

1 个答案:

答案 0 :(得分:1)

SELECT * 
FROM Country c 
Inner join Cause cs on cs.CountryName = c.CountryName

这将使您了解所有有原因的国家/地区。希望我理解你的想法。

如果cs.CountryName与c.CountryName相同,则此方法有效。还要注意这样一个事实:EXISTS比连接需要更长的时间,并且还考虑索引CountryName列