Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql MS ACCESS 2016多重联接语法_Sql_Ms Access - Fatal编程技术网

Sql MS ACCESS 2016多重联接语法

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

如何使用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 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
子句不是
左连接
条件的选项)

如何解决:
  • 将连接分组到括号中,使每个连接表达式中只有一个连接
  • 用括号将表达式上的
    括起来
    
SQL:
这是否回答了您的问题?当您输入它时,会收到什么错误消息?可能尝试为每个表别名添加关键字
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)