内部加入正确的联接在这里使用?

时间:2014-04-27 06:01:42

标签: mysql sql join

我需要在两个不同的表中为用户更新具有相同名称的列。该列为userCanMessage

userMain

userId | userCanMessage
1      | 0

userSettings

userId | userCanMessage | userCanAdd
1      | 0              | 0

整个事情的结构是有充分理由的。

如果我想在userCanMessage的两个表中更新userId = 1,那么在一个查询中最安全的方法是什么?

目前的一个是:

update userMain inner join userSettings on userMain.userId = userSettings.userId 
   set userMain.userCanMessage = 1,
       userSettings.userCanMessage = 1
  where userMain.userId = 1;

此处,userMain是用户的主表,userSettings是保存设置的表。更新需要首先使用userMain来影响这两个表。

1 个答案:

答案 0 :(得分:0)

为什么要使用JOIN?做2个简单的查询。

$sql1 = "UPDATE userMain SET userCanMessage WHERE userId=?";
$sql2 = "UPDATE userSettings SET userCanMessage WHERE userId=?";

$stmt1 = $db_usag->prepare($sql1);
$stmt2 = $db_usag->prepare($sql2);

$stmt1->bind_param('d', $param);
$stmt2->bind_param('d', $param);

$stmt1->execute();
$stmt2->execute();

$stmt1->close();
$stmt2->close();