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

識別子を引用する場合は、内側のドットをバッククォートで囲まないでください。

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

内側のドットを引用符で囲むと、テーブル名と列名の間の区切り文字ではなく、列名の内側にあると見なされます。という名前の列がありますが、という名前の列はありませNameん。ただし、この場合、識別子はMySQLで予約されているキーワードではないため、引用符で囲む必要はありません。Country.Name

于 2012-05-22T17:35:37.253 に答える
2

バックティックを変更してみてください。

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

table.column全体の周りに配置するのではなく、間隔を空けて個別に配置します。

また、国会議事堂は一重引用符であり、バックティックではありません。

于 2012-05-22T17:38:02.997 に答える
0

これは構文上の問題のようです。

代わりにこれを使用してみてください:

`Country`.`Name`

country.name(目盛り)は、後のフィールドの名前になります

`country`.`name`
于 2012-05-22T17:34:17.820 に答える