You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access含子查询的多左连接查询报语法错误,求排查修正

Access多左连接查询"Missing Operator"错误修正

Access Jet SQL对多表连接的语法要求比标准SQL更严格,连续多个LEFT JOIN必须通过嵌套括号明确连接层级,否则会抛出"Missing Operator"语法错误。你的原查询中连续两个LEFT JOIN未按此规则嵌套,导致语法不兼容。

修正后的查询代码

SELECT *
FROM
(
    (
        SELECT 
            tblTasks.ID, 
            tblTasks.csr_number, 
            tblTasks.title, 
            tblTasks.engineer, 
            tblTasks.poc, 
            tblTasks.customer, 
            tblTasks.complete, 
            tblTasks.status, 
            tblTasks.base_end 
        FROM tblTasks 
        WHERE 
            tblTasks.csr_number IS NOT NULL 
            AND tblTasks.complete < 1 
            AND tblTasks.status <> 'On hold' 
    ) AS tasks
    LEFT JOIN
    (
        SELECT * 
        FROM tblNotes AS n1 
        WHERE n1.note_date = 
        (
            SELECT MAX(n2.note_date) 
            FROM tblNotes as n2 
            WHERE n2.note_id = n1.note_id
        )
    ) AS notes ON tasks.ID = notes.note_id
)
LEFT JOIN
(
    SELECT 
        tblAttach.task_id,
        tblAttach.attach_name
    FROM tblAttach
    WHERE attach_name LIKE '*'
) AS tAttach ON tasks.ID = tAttach.task_id;

关键修正点

  1. 嵌套括号规范:将第一个LEFT JOIN的结果(tasks与notes的连接)整体用括号包裹,再与tAttach执行左连接,符合Access对多JOIN语句的层级要求。
  2. 通配符修正:Access中LIKE操作符的通配符为*,无需转义反斜杠,原查询中的'\*'改为'*'(若需求是匹配包含*的文件名,需改为'*\**')。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:02:07