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 に答える