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' があいまいです。
問題が見つかりません。
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' があいまいです。
問題が見つかりません。
列noMyKid
は両方のテーブルに存在します。フィルタリングする列がどのテーブルにあるかをサーバーに伝える必要があります。
WHERE a.noMyKid = 130902100437
また
WHERE b.noMyKid = 130902100437
何を使用しても、 を使用しているので問題ありませんINNER JOIN
。
両方のテーブルに「noMyKid」という列があると思います。
次のように接頭辞を付けます: a.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
問題は、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