访问中的 from 子句中的语法错误

Posted

技术标签:

【中文标题】访问中的 from 子句中的语法错误【英文标题】:syntax error in from clause in access 【发布时间】:2017-01-11 16:08:31 【问题描述】:

我正在运行一个简单的查询。我想获取在两个表中都找到的记录,但是出现语法错误。 (FROM 子句中的语法错误)我在我的 sql server 2008 中运行此查询,它运行顺利,但如果我在我的访问数据库中执行此操作,我会收到此语法错误

从 Billing0923 中选择 DISTINCT * 相交 从 Billing916 中选择 DISTINCT *

【问题讨论】:

How can I implement SQL INTERSECT and MINUS operations in MS Access 【参考方案1】:

再次有人坚持使用 Access ...但不要绝望,Hive 也有同样的问题,他们在 GitHub 中有一些用户定义的函数可以解决这个问题。

对于两个集合操作 MINUS/EXCEPT 或者,实际上,INTERSECT,你将不得不求助于一个表的 SELECT DISTINCT a.* 作为一个 INNER JOIN-ed 与另一个表 AS b,所有列的ON 子句中有两个表。丑,我知道……

CREATE TABLE work ( 
  division         INT
, fips_county_code VARCHAR(3)
, last             VARCHAR(10)
, suffix           VARCHAR(3)
, first            VARCHAR(6)
, title            VARCHAR(16) 
, birthdate        DATE
);

INSERT INTO work VALUES(1,'UK' ,'Dent'      ,'','Arthur','Earthling'       ,'1957-08-02');
INSERT INTO work VALUES(1,'UK' ,'Prefect'   ,'','Ford'  ,'HH Guide Scout'  ,'1925-04-01');
INSERT INTO work VALUES(1,'N/A','Beeblebrox','','Zaphod','Galaxy President','1857-09-13');
INSERT INTO work VALUES(1,'UK' ,'McMillan'  ,'','Tricia','Astrophysicist'  ,'1959-09-29');
INSERT INTO work VALUES(1,'UK' ,'Dent'      ,'','Arthur','Earthling'       ,'1957-08-02');
INSERT INTO work VALUES(1,'UK' ,'McMillan'  ,'','Tricia','Astrophysicist'  ,'1959-09-29');

CREATE TABLE work_2 ( 
  division         INT
, fips_county_code VARCHAR(3)
, last             VARCHAR(10)
, suffix           VARCHAR(3)
, first            VARCHAR(6)
, title            VARCHAR(16) 
, birthdate        DATE
);
INSERT INTO work_2 VALUES(1,'UK' ,'Dent'      ,'','Arthur','Earthling'          ,'1957-08-02');
INSERT INTO work_2 VALUES(1,'UK' ,'Prefect'   ,'','Ford'  ,'HH Guide Scout'     ,'1925-04-01');
INSERT INTO work_2 VALUES(1,'UK' ,'Prosser'   ,'','Edwin' ,'Bulldozer Team Head','1957-08-02');
INSERT INTO work_2 VALUES(1,'N/A','Halfrunt'  ,'','Gag'   ,'Musician'           ,'1925-04-01');

SELECT DISTINCT
  work.*
FROM work AS work
INNER JOIN work_2 AS cmp
   ON work.division         = cmp.division
  AND work.fips_county_code = cmp.fips_county_code
  AND work.last             = cmp.last
  AND work.suffix           = cmp.suffix
  AND work.first            = cmp.first
  AND work.title            = cmp.title
  AND work.birthdate        = cmp.birthdate
;

division|fips_county_code|last   |suffix|first |title         |birthdate
       1|UK              |Dent   |      |Arthur|Earthling     |1957-08-02 00:00:00
       1|UK              |Prefect|      |Ford  |HH Guide Scout|1925-04-01 00:00:00

玩得开心

马可

【讨论】:

【参考方案2】:

使用UNION

SELECT * FROM Billing0923
UNION
SELECT * FROM Billing916

假设您的两个表具有完全相同的字段。否则列出他们共同的字段而不是使用*

【讨论】:

以上是关于访问中的 from 子句中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 OleDb 错误“FROM 子句中的语法错误”?

Access 2003 SQL:from 子句中的语法错误

如何解决 FROM 子句中的这个语法错误?

使用 FROM 子句中的子查询进行联接操作中的 SQL 语法错误

C# - From 子句中的 OleDB 语法错误

带有 ASP Classic 的 SQL(FROM 子句中的语法错误。)