带有MyBatis SQL查询的不明确列

带有MyBatis SQL查询的不明确列,sql,sql-server,mybatis,Sql,Sql Server,Mybatis,我下面的查询有一个错误。你能帮帮我吗 错误是由不明确的列引起的。我有个主意,我不确定 我认为错误在于此处的WorkUID列不明确: <isNotEmpty property="uids"> AND WorkUID IN <iterate property="uids" open="(" close=")" conjunction=","> #uids[]# </iterate> </isNotEmpty>

我下面的查询有一个错误。你能帮帮我吗

错误是由不明确的列引起的。我有个主意,我不确定

我认为错误在于此处的WorkUID列不明确:

<isNotEmpty property="uids">
    AND WorkUID IN
    <iterate  property="uids" open="(" close=")" conjunction=",">
      #uids[]#
    </iterate>
  </isNotEmpty>
以下是查询:

<select id="getData" resultClass="java.lang.Integer" parameterClass="java.util.Map" >
    <![CDATA[
            SELECT xrn.WorkUID
            FROM
            (SELECT uow.WorkUID,
                ROW_NUMBER() OVER(PARTITION BY wsh.WorkUID ORDER BY wsh.DT DESC) AS rnk
            FROM UnitWork uow
            INNER JOIN SigHist sh ON  sh.SigUID = uow.SigUID
            INNER JOIN DataCell d ON d.WorkUID = uow.WorkUID
            INNER JOIN WorkStatHist wsh ON (wsh.WorkUID = uow.WorkUID
                                                 AND wsh.WorkUID = d.WorkUID
                                                            AND 8 =
                                                    (SELECT TOP 1 StatusUID
                                                    FROM WorkStatHist(NOLOCK)
                                                    WHERE WorkUID = uow.workUID
                                                    ORDER BY DT DESC))
      WHERE (uow.ReleasedDT > #fromDate#)
            OR (sh.UpdatedDT > #fromDate#)
            AND d.EffectiveTo >= GETDATE() + 1
            ]]>
    <dynamic>
      <isNotEmpty property="toDate">
        <![CDATA[
                        AND d.EffectiveTo < #toDate#
                    ]]>
      </isNotEmpty>
      <isNotEmpty property="uids">
        AND WorkUID IN
        <iterate  property="uids" open="(" close=")" conjunction=",">
          #uids[]#
        </iterate>
      </isNotEmpty>
    </dynamic>
    <![CDATA[
    ) xrn
            WHERE xrn.rnk=1
        ]]>
  </select>
我对MyBatis一点也不熟悉,因此我无法解释代码的这一部分,但您的问题似乎与以下部分有关:

<isNotEmpty property="uids">
    AND WorkUID IN
    <iterate  property="uids" open="(" close=")" conjunction=",">
      #uids[]#
    </iterate>
</isNotEmpty>

这是什么语言。。。?显然,除了SQL Server之外,还有另一种语言在使用。请适当标记您的问题。请重新命名你的头衔。你没有这个资格。。。然后工作。在感谢您的回复后的Where语句中,这是一个用mybatis编写的sql查询。魏欧DBA,你能不能再解释一下你在这个问题上发现了什么错误,因为我没有听清楚你上面的解释。非常感谢guys+1的评论:看到它被用作每个表的连接约束,我们告诉它在哪个表中查找并不特别重要。回答正确。谢谢大家的帮助。我已经按照Siyual的指导解决了这个问题。大家好,我能问一个关于上述问题的最后一个问题吗?如何在我的WHERE条件中添加新条件,如:WHERE wsh.WorkUID=uow.WorkUID和uow.WorkUID IN55,以从WorkStatHistNOLOCK中选择前1个状态UID。它没有考虑到我的新情况
<isNotEmpty property="uids">
    AND WorkUID IN
    <iterate  property="uids" open="(" close=")" conjunction=",">
      #uids[]#
    </iterate>
</isNotEmpty>
<isNotEmpty property="uids">
    AND uow.WorkUID IN
    <iterate  property="uids" open="(" close=")" conjunction=",">
      #uids[]#
    </iterate>
</isNotEmpty>