加入后没有找到字段

时间:2012-05-22 17:32:38

标签: mysql sql

我正在使用InnoDB版本的MySQL world 数据库(可用here),我正在尝试获取南美及其首都的国家列表。在我看来,查询应该如下所示:

    SELECT `Country.Name` as `CountryName`, `City.Name` as `CityName`
    FROM `Country`, `City` 
    WHERE `Continent` = 'South America' AND `ID` = `Capital`;

但即使表#1054 - Unknown column 'Country.Name' in 'field list'确实包含字段Country,该错误也会Name

为什么MySQL找不到我想要的字段?如何更改查询以使其找到它们?

如果我需要为您提供更多信息以便能够帮助我,请告诉我。

3 个答案:

答案 0 :(得分:2)

如果您引用标识符,请不要使用反引号包围内部点。

SELECT
  `Country`.`Name` AS CountryName,
  `City`.`Name` AS CityName

如果引用内部点,则会假定它位于列名称内,而不是表名和列名之间的分隔符 - 您有一个名为Name的列,但不是< em>列名为Country.Name。但是,在这种情况下,没有必要引用任何标识符,因为它们都不是MySQL reserved keywords

答案 1 :(得分:2)

尝试修改后面的刻度。

SELECT 
    `Country`.`Name` as `CountryName`,
    `City`.`Name` as `CityName` 
FROM `Country`, `City`
WHERE `Continent` = 'South America' AND `ID` = 'Capital';

不要将它们放在整个table.column周围,而是将它们分别放在它们之间。

国会大厦也应该是单引号而不是后退。

答案 2 :(得分:0)

这似乎是一个语法问题:

请尝试使用此代码:

`Country`.`Name`

country.name(以刻度表示)将是您的后面的

字段的名称
`country`.`name`