为何显示的不是第一条记录

来源:百度知道 编辑:UC知道 时间:2024/09/24 15:27:58
SELECT Country.CountryID, Country.Country, Country.ECountry, First(Province.ProvinceID) AS ProvinceID之第一条记录, First(Province.province) AS province之第一条记录
FROM Country LEFT JOIN Province ON Country.CountryID = Province.CountryID
GROUP BY Country.CountryID, Country.Country, Country.ECountry;
-------
请教上述SQL显示的为何不是每个COUNTRY下的PROVINCE的第一条记录。而如果改成INNER JOIN 或者RIGHT JOIN 就正确,但是这样COUNTRY的所有记录就不能显示了。请教各位大侠!
可能是NULL的问题,但是我是在ACCESS下,ISNULL(,0)是不能用的,我替换为NZ(,0),但是问题依旧。我尝试了把关系删除就正常了。但是,如果我再添加一个表,如城市。即使删除关系,也不正常。

oracle里的吧,sqlserver中可能没有这种用法

left join 中 Province.ProvinceID和Province.province 有可能存在 NULL 的值,但是 right和inner Join 就不会产生

你可以尝试 用First(isnull(Province.ProvinceID,0)) 和 First(isnull(Province.province,0))

当然我只会用sqlserver
不知道你用过 in 语句没,如果用到 你可能会发县 in() 和 not in()之和 可能不是一个全集,就是因为NULL在作怪

你再找找别的资料吧,我只会sqlserver
目前还没有写不出来的语句有点夸张