Sql MS ACCESS 2016多重联接语法
如何使用MS ACCESS 2016语法编写以下SQL查询Sql MS ACCESS 2016多重联接语法,sql,ms-access,Sql,Ms Access,如何使用MS ACCESS 2016语法编写以下SQL查询 SELECT ticket.ticket_id, a1.attr_val AS attr_val1, a2.attr_val AS attr_val2, a3.attr_val AS attr_val3 FROM ticket LEFT JOIN attr a1 ON ticket.ticket_id=a1.ticket_id AND a1.attr_type=1 LEFT JOIN
SELECT
ticket.ticket_id,
a1.attr_val AS attr_val1,
a2.attr_val AS attr_val2,
a3.attr_val AS attr_val3
FROM ticket
LEFT JOIN attr a1 ON ticket.ticket_id=a1.ticket_id AND a1.attr_type=1
LEFT JOIN attr a2 ON ticket.ticket_id=a2.ticket_id AND a2.attr_type=2
LEFT JOIN attr a3 ON ticket.ticket_id=a3.ticket_id AND a3.attr_type=3
提前感谢您的帮助 MS Access具有以下功能:
不支持联接表达式。(错误3296)
可能的原因:
- SQL语句包含多个联接,其中查询结果可能不同,具体取决于联接的执行顺序。您可能需要创建一个单独的查询来执行第一次联接,然后将该查询包含在SQL语句中
操作中的JOIN
语句不完整或包含太多表。您可能需要将ON
放在
子句中的WHERE
表达式上
WHERE
子句不是左连接
条件的选项)
如何解决:
- 将连接分组到括号中,使每个连接表达式中只有一个连接李>
- 用括号将表达式上的
括起来李>
这是否回答了您的问题?当您输入它时,会收到什么错误消息?可能尝试为每个表别名添加关键字
AS
。它看起来不像“AS”语句当我省略“AS”时,它会说类似“表达式连接不受支持”在我自己复制了MS Access数据库中的表之后,我更新了我的答案:您需要将整个ON
条件用一对括号括起来。我现在的答案中的疑问应该是有效的:它对我有效。
SELECT
ticket.ticket_id,
a1.attr_val AS attr_val1,
a2.attr_val AS attr_val2,
a3.attr_val AS attr_val3
FROM ((ticket
LEFT JOIN attr AS a1 ON (ticket.ticket_id=a1.ticket_id AND a1.attr_type=1))
LEFT JOIN attr AS a2 ON (ticket.ticket_id=a2.ticket_id AND a2.attr_type=2))
LEFT JOIN attr AS a3 ON (ticket.ticket_id=a3.ticket_id AND a3.attr_type=3)