我一直在网上寻找一个关于单个表上多个联合查询的例子,唯一类似于我遇到问题的解决方案是这个线程。
这是我在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
));
这让我遇到了一个“联合查询语法错误”。
tag_1
,tag_2
和tag_3
字段,它们看起来保存了相同类型的信息。如果tag_1
有值,那么tag_2
和tag_3
是否为空?如果是这样的话,你可以只使用tag
字段来区分这三个标签。然后,你可以通过计算标签数量并按照它们进行分组来获得你想要的结果。 - Darren Bartrup-Cookchat_tb
是一个 MySQL 表而不是引用 MySQL 表的 Access 查询?如果删除其中一个联合是否有效(如链接线程中所述)? - Darren Bartrup-Cook