1
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”不明确。

我找不到问题。

4

4 回答 4

1

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

WHERE a.noMyKid = 130902100437

或者

WHERE b.noMyKid = 130902100437

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

于 2014-04-14T03:27:30.703 回答
0

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

像这样前缀:a.noMyKid

于 2014-04-14T03:27:37.807 回答
0

尝试更改为

SELECT *, DATEDIFF(CURDATE(),tarikhmohon) AS hari
FROM mohon a 
INNER JOIN tblstatus_tak_lengkap b on a.noMyKid=b.nomykid 
WHERE a.noMyKid=130902100437
于 2014-04-14T03:27:57.130 回答
0

问题是mohon两者tblstatus_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
于 2014-04-14T03:28:59.880 回答