SQL 加入错误
SQL Join Incorrectly
我正在尝试 select 来自下图所示数据库的值,以便我可以插入一个名为 Desired Table
的新 table。数据和调试在 Microsoft Access
数据库中,我继续收到错误:
syntax error in query expression.
这个查询有什么问题?连接似乎是正确的,FROM
子句也是如此。如果您需要更多信息,请告诉我。不用担心 INSERT
子句。
查询:
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
vacdescriptions.accessory,
vacvalues.value,
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
数据库结构:
DATABASE SCHEMA
需要 table 插入:
我想你应该使用 括号 只有当你加入超过 两个
Ms-Access
中的 tables 加上它应该在第一个 table 名称之前开始。尝试删除它。
.....
FROM vicdescriptions
JOIN vicvalues
ON vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
vacdescriptions.accessory,
vacvalues.value,
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
我猜是第 5、6 行 vacdescriptions,vacvalues >> vicdescriptions,vicvalues
是否是 vacdescriptions 和 vacvalues 的拼写错误?
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
**vicdescriptions.accessory,
vicvalues.value,**
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
Access 不支持 JOIN
作为 INNER JOIN
的同义词。您必须始终指定 JOIN
:
的类型
FROM vicdescriptions
INNER JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year )
如果不存在名为 vicvalues
的 table,在您将 JOIN
更改为 INNER JOIN
后,Access 将给出不同的错误消息。
SELECT VicDescriptions.VID,
VicDescriptions.Make,
VicDescriptions.VIC_Year,
VicDescriptions.OptionTable,
VacDescriptions.accessory,
VacValues.value,
VacValues.valuetype,
VacValues.value --(No such table as VicValues available in the database, you only have VacValues)
FROM VicDescriptions
JOIN VacValues --(No such table available in the database, you only have VacValues)
ON ( VicDescriptions.VIC_Make = VacValues.VIC_Make
AND VicDescriptions.VIC_Year = VacValues.VIC_Year )
JOIN VacDescriptions
ON ( VacDescriptions.Period = VacValues.Period
AND VacDescriptions.VAC = VacValues.VAC);
我正在尝试 select 来自下图所示数据库的值,以便我可以插入一个名为 Desired Table
的新 table。数据和调试在 Microsoft Access
数据库中,我继续收到错误:
syntax error in query expression.
这个查询有什么问题?连接似乎是正确的,FROM
子句也是如此。如果您需要更多信息,请告诉我。不用担心 INSERT
子句。
查询:
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
vacdescriptions.accessory,
vacvalues.value,
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
数据库结构:
DATABASE SCHEMA
需要 table 插入:
我想你应该使用 括号 只有当你加入超过 两个
Ms-Access
中的 tables 加上它应该在第一个 table 名称之前开始。尝试删除它。
.....
FROM vicdescriptions
JOIN vicvalues
ON vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
vacdescriptions.accessory,
vacvalues.value,
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
我猜是第 5、6 行 vacdescriptions,vacvalues >> vicdescriptions,vicvalues
是否是 vacdescriptions 和 vacvalues 的拼写错误?
SELECT vicdescriptions.vid,
vicdescriptions.make,
vicdescriptions.vic_year,
vicdescriptions.optiontable,
**vicdescriptions.accessory,
vicvalues.value,**
vicvalues.valuetype,
vicvalues.value
FROM vicdescriptions
JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year );
Access 不支持 JOIN
作为 INNER JOIN
的同义词。您必须始终指定 JOIN
:
FROM vicdescriptions
INNER JOIN vicvalues
ON ( vicdescriptions.vic_make = vicvalues.vic_make
AND vicdescriptions.vic_year = vicvalues.vic_year )
如果不存在名为 vicvalues
的 table,在您将 JOIN
更改为 INNER JOIN
后,Access 将给出不同的错误消息。
SELECT VicDescriptions.VID,
VicDescriptions.Make,
VicDescriptions.VIC_Year,
VicDescriptions.OptionTable,
VacDescriptions.accessory,
VacValues.value,
VacValues.valuetype,
VacValues.value --(No such table as VicValues available in the database, you only have VacValues)
FROM VicDescriptions
JOIN VacValues --(No such table available in the database, you only have VacValues)
ON ( VicDescriptions.VIC_Make = VacValues.VIC_Make
AND VicDescriptions.VIC_Year = VacValues.VIC_Year )
JOIN VacDescriptions
ON ( VacDescriptions.Period = VacValues.Period
AND VacDescriptions.VAC = VacValues.VAC);