0

table1 と table2 の値が等しい場合、table1 の行を更新する方法を知りたいです。

たとえば、table1 には次の行があります。

id - password - attemp
user  secret       0
user2  pass        0

およびtable2には行があります"

id -  password
user   secret
user2   kek

table1 ユーザーとパスワードが等しく、table1 attemp = 0 の table1 attemp 値を table1 attemp = 1 に更新します。

私はこのようなことをしました(そしてそれはうまくいきません):

UPDATE a1
set a1.attemp = '1'
from table1 a1
JOIN table2 a2
on a1.user = a2.user AND a1.password = a2.password
WHERE 
a1.attemp != 1 
4

1 に答える 1

0

これを試して:

UPDATE table1 a1
INNER JOIN table2 a2 ON a1.id = a2.id AND a1.password = a2.password
SET a1.attemp = '1'
WHERE a1.attemp != '1'

これにより、次のようになります。

ID  PASSWORD    ATTEMP
user    secret  1
user2   pass    0

sqlfiddle demo

于 2013-11-14T14:56:23.357 に答える