【问题标题】:#1052 - Column 'noMyKid' in where clause is ambiguous#1052 - where 子句中的列“noMyKid”不明确
【发布时间】:2014-04-14 03:25:51
【问题描述】:
SELECT *, DATEDIFF(CURDATE(),tarikhmohon) AS hari
FROM mohon a 
INNER JOIN tblstatus_tak_lengkap b on a.noMyKid=b.nomykid 
WHERE noMyKid=130902100437

我已经尝试过该 SQL,但出现错误。

#1052 - where 子句中的“noMyKid”列不明确。

我找不到问题。

【问题讨论】:

    标签: sql database mysql-error-1052


    【解决方案1】:

    noMyKid 存在于两个表中。您应该告诉服务器您要过滤的列在哪个表上,例如

    WHERE a.noMyKid = 130902100437
    

    WHERE b.noMyKid = 130902100437
    

    无论你使用什么,都无所谓,因为你使用的是INNER JOIN

    【讨论】:

      【解决方案2】:

      我认为您在两个表中都有“noMyKid”列。

      像这样添加前缀:a.noMyKid

      【讨论】:

        【解决方案3】:

        试着换成

        SELECT *, DATEDIFF(CURDATE(),tarikhmohon) AS hari
        FROM mohon a 
        INNER JOIN tblstatus_tak_lengkap b on a.noMyKid=b.nomykid 
        WHERE a.noMyKid=130902100437
        

        【讨论】:

          【解决方案4】:

          问题在于mohontblstatus_tak_lengkap 都有一个noMyKid 列(至少在使用不区分大小写的列名的安装中)。在WHERE 子句中,您需要指定要从哪个表读取noMyKid

          由于您已经加入了该值,因此您选择哪个表并不重要,所以这样的事情可以正常工作:

          SELECT *, DATEDIFF(CURDATE(),tarikhmohon) AS hari
          FROM mohon a 
          INNER JOIN tblstatus_tak_lengkap b on a.noMyKid=b.nomykid 
          WHERE a.noMyKid=130902100437
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-16
            • 1970-01-01
            • 2020-10-13
            • 2019-04-14
            • 1970-01-01
            • 2021-10-11
            相关资源
            最近更新 更多