我在更新Access中的查询时遇到问题。我有3个表格:用3个表加入查询的更新
City
ID | CityName | CountryID|
Country
ID | CountryName
CityImport
City | Country
我不确定这是否是正确的设计,但它现在不太重要。
我想用Excel数据更新我的数据库。我决定创建CityImport
表以使过程更清晰。我把这个表中的城市信息,我想填写City
表。当我运行UPDATE (CityImport INNER JOIN Country ON CityImport.Country = Country.CountryName) LEFT JOIN City ON City.CityName = CityImport.City AND City.CountryID = Country.ID SET City.CityName = CityImport.City, City.CountryID = Country.ID WHERE CityImport.City IS NOT NULL
这样的查询时,出现JOIN expression not supported
错误。
我认为这是我的语法问题,但如果我从JOIN中删除一个条件,并将其保留为UPDATE (CityImport INNER JOIN Country ON CityImport.Country = Country.CountryName) LEFT JOIN City ON City.CityName = CityImport.City SET City.CityName = CityImport.City, City.CountryID = Country.ID WHERE CityImport.City IS NOT NULL
,它工作正常。问题在于它忽略了不同国家的同名城市。
是否有可能以某种方式正确地完成此类联接工作?或者根据定义它是不正确的?它需要将来自不同表格的两列上的另一个连接结果连接到一个表格。在这种情况下,我可能会以某种方式解决它,但我想用更多,更复杂的表格使用相同的方法。
我在几个小时内玩过不同的查询,搜索了几百个小时,但仍然没有成功。
http://stackoverflow.com/questions/15209414/how-to-do-3-table-join-in-update-query?rq=1 – Dave
@戴夫,它没有解决我确切的问题。我知道如何连接表,但我无法工作的是将它们连接到两个嵌套连接的不同表中的字段。 – brainac