通过连接两个表插入

时间:2015-08-17 14:23:50

标签: mysql

我的表all_usernames包含srno列和username列。 username是唯一的,srno会自动递增。

另一个表blockers包含srno_blocker列和srno_blocked列。它会存储阻止其他用户srno)的srno_blocker个用户(srno_blocked)。

问题: 我阻止srno阻止者和username用户。我需要编写查询以相应地在blockers中插入记录。

为此,一个查询获得srno username(用户被阻止),然后另一个查询在blockers中插入记录是一种解决方案。但它需要发出两个查询。

如何最有效地完成此操作(在使用连接的单个查询中)?

1 个答案:

答案 0 :(得分:0)

INSERT INTO blockers (srno_blocker, srno_blocked)
  SELECT <blocker_srno>, u.srno
  FROM all_usernames As u WHERE username = <blocker_username>

当然适当的参数化取决于你的语言/ sql lib