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

SQL存储过程INNER JOIN执行报错4145问题咨询

错误原因

  • 核心问题是dirListingDescriptions表的关联条件不完整,INNER JOIN的ON子句要求返回布尔类型的判断结果,你当前仅写了ON dld.listID,仅给出单个字段属于非布尔表达式,SQL解析到后续WHERE关键字时就触发了4145报错。

修复方案

补全dld表的关联条件即可,常规业务逻辑下dirListingDescriptions表的listID和dirListings表的listid为关联字段,修正后的完整代码如下:

ALTER PROCEDURE [dbo].[spDirectoryLookup]
    (@LookupName nvarchar(100), 
     @ClientNumber bigint)
AS
BEGIN
    SELECT DISTINCT 
        DL.subid,
        C.ClientNumber,
        C.ClientName,
        DL.listid,
        dld.Description  
    FROM 
        INTELLIGENT_2414_1.DBO.dirListings DL 
    INNER JOIN 
        Intelligent_2414_1.DBO.cltClients C ON DL.subid = C.subid
    INNER JOIN 
        INTELLIGENT_2414_1.DBO.dirListingDescriptions dld ON dld.listID = DL.listid
    WHERE 
        dld.Description LIKE '%'+@LookupName+'%'
        AND DL.subid IN (SELECT subid 
                         FROM Intelligent_2414_1.DBO.cltClients C 
                         WHERE C.ClientNumber = @ClientNumber)
END

补充说明:代码中额外给字段增加了表别名限定,避免多表存在同名字段时出现歧义报错。

内容的提问来源于stack exchange,提问作者David S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:02