0

我正在使用 MySQL世界数据库的 InnoDB 版本(可在此处获得),并试图获取南美洲国家及其首都的列表。在我看来,查询应该是这样的:

    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 找不到我想要的字段?如何更改查询以使其找到它们?

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

4

3 回答 3

2

Try modifying your back ticks.

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

Do not put them around the entire table.column, but around them individually with the period between them.

Also capitol should be single quotes and not back ticks.

于 2012-05-22T17:38:02.997 回答
2

如果你引用标识符,不要用反引号包围内点。

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

如果你在内部点周围引用,它将被假定在列名内,而不是表名和列名之间的分隔符——你有一个名为 的列Name,但没有一个名为的Country.Name。然而,在这种情况下,没有必要引用任何标识符,因为它们都不是MySQL 保留关键字

于 2012-05-22T17:35:37.253 回答
0

这似乎是一个语法问题:

尝试改用这个:

`Country`.`Name`

country.name (以刻度为单位)将是您所追求的字段的名称

`country`.`name`
于 2012-05-22T17:34:17.820 回答