多个联合查询 MS Access

3

我一直在网上寻找一个关于单个表上多个联合查询的例子,唯一类似于我遇到问题的解决方案是这个线程

这是我在MS ACCESS中构建的查询。

  SELECT chat_tb.tag_1 AS [tag_desc], Count(chat_tb.tag_1) AS [Count_of_tag] FROM chat_tb GROUP BY chat_tb.tag_1
UNION
SELECT chat_tb.tag_2 AS [tag_desc], Count(chat_tb.tag_2) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_2
UNION 
SELECT chat_tb.tag_3 AS [tag_desc], Count(chat_tb.tag_3) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_3;

但我遇到了以下错误,我认为是因为它链接到MySQL表,所以无法执行union操作,可以有人帮我更改为MySQL格式吗?谢谢!

注意:如果我删除最后一个union,语句就可以正常工作。

查看错误信息

ODBC--调用失败。 {MySQL]{ODBC 3.51 驱动程序}您的SQL语法错误;请检查与您的MySQL服务器版本相对应的手册,以获取要使用的正确语法,附近名称为“Union(选择'tag',Count('tag_2') FROM'chat_tb" GROUP BY 'tag_2')) UNIO' 第1行 (#1064)

我在线程中找到了类似的问题。

并且进行了以下操作:

 SELECT chat_tb.tag_1 AS [tag_desc], Count(chat_tb.tag_1) AS [Count_of_tag] FROM chat_tb GROUP BY chat_tb.tag_1;
UNION ALL (

SELECT chat_tb.tag_2 AS [tag_desc], Count(chat_tb.tag_2) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_2;

UNION ALL

SELECT chat_tb.tag_3 AS [tag_desc], Count(chat_tb.tag_3) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_3
)); 

这让我遇到了一个“联合查询语法错误”。

4
删除前两个分号(即两个联合语句之前的分号)。 - Jonathan Willcock
@JonathanWillcock,很遗憾这并没有改变任何东西,我认为我需要使用MySQL SQL语句,因为MS Access是链接到一个MySQL表格。 - Noob Prgmr
你可能需要重新设计你的数据库 - 你有 tag_1tag_2tag_3 字段,它们看起来保存了相同类型的信息。如果 tag_1 有值,那么 tag_2tag_3 是否为空?如果是这样的话,你可以只使用 tag 字段来区分这三个标签。然后,你可以通过计算标签数量并按照它们进行分组来获得你想要的结果。 - Darren Bartrup-Cook
你能否编辑你的帖子,加入新的查询语句并且发布错误信息吗?如果现在有所不同的话。 - Jonathan Willcock
错误信息是什么 - 我现在无法附上图片?我猜 chat_tb 是一个 MySQL 表而不是引用 MySQL 表的 Access 查询?如果删除其中一个联合是否有效(如链接线程中所述)? - Darren Bartrup-Cook
显示剩余13条评论
1个回答

3
我刚刚成功复制了你的问题。你所做的是试图在MySQL链接表中将查询作为Access查询运行。经过一番研究,这似乎是一个已知的错误:请参见这里。你不能有多个联合查询。但它可以作为SQL Pass-Through工作。在设计选项卡上,在Union下选择Pass-Through(地球仪符号)。这意味着你需要选择你的DNS来运行它。

1
这是一个有趣的错误。仍然存在于MS Access 13/16中,因为该错误指向了早期版本的Access和MySQL?如果你移除SELECT语句周围的括号会怎么样? - Parfait
1
@Parfait我尝试了很多次。我甚至试图通过将其拆分为两个Access查询(它们分别有效),然后在这些查询上执行联接,但是仍然无济于事!我认为实际上错误不在Access中,而是在ODBC驱动程序中,该驱动程序来自Oracle。我在Access中使用ODBC连接其他后端时从未见过相同的错误。 - Jonathan Willcock
1
@JonathanWillcock 谢谢你! - Noob Prgmr
1
@NoobPrgmr 不客气。祝你有美好的一天。 - Jonathan Willcock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接