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

問題は、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
于 2014-04-14T03:28:59.880 に答える