0

我被经典的初学者错误击中。好像我做了一个没有 WHERE 子句的 UPDATE 。

这是SQL:

"UPDATE teams SET description = ? " +
"FROM teams t " +
"JOIN team_memberships tm ON t.id = tm.team_id " +
"JOIN users u ON tm.user_id = u.id " + 
"WHERE t.id = ? AND u.uid = ?";

尽管 WHERE t.id = ? SQL 仍然更新整个表。

...你能看到问题吗?

4

2 回答 2

2

试试这个,

UPDATE teams AS t
SET description = ? 
FROM  team_memberships tm 
      JOIN users u ON tm.user_id = u.id 
WHERE t.id = tm.team_id AND
      t.id = ? AND u.uid = ?

请在执行上述语句之前先备份您的数据库

于 2013-05-05T04:04:01.700 回答
0

使用 select 语句运行查询。您将看到它将返回所有值。

将左连接与第一个连接一起使用,它应该可以解决您的问题。

于 2013-05-05T03:53:22.830 回答