我正在尝试使用JOIN进行更新。我有两张桌子:
我想更新player_tracking中fsp_f设置为1的用户的所有行。这是我的示例代码:
UPDATE player_tracking AS pt
LEFT JOIN users AS u ON u.name = pt.user
SET pt.newtome = pt.newtome - 1
WHERE pt.first = 'Brett'
AND pt.last = 'Gardner'
AND pt.sport = 'mlb'
AND u.fsp_f = 1
问题在于 22行要更新,但UPDATE查询仅影响2 。为什么?我的查询错了吗?
以下是有关“Brett”“Gardner”“mlb”的player_tracking中的数据: http://pastebin.com/kyf8SCy8
答案 0 :(得分:2)
我相信,如果您将LEFT JOIN
更改为JOIN
,则会在users
部分使用字段表单WHERE
后看到更新的确切行声明。
所以基本上你试图检查u.fsp_f = 1
是否存在未加入users
的行,因此其值为NULL
。
此外,您的查询的总体布局似乎也不正确,因为您正在加入SET
语句而不是UPDATE
部分 - 您指示要更新哪个表