我有两个表users
(id,用户名等等)和user_contacts
(id,userid,contactid等...) 。
鉴于我的user
代码为84,为了将缺少的记录插入user_contacts
以关联user
84,最有效的查询是什么?所有其他用户?
答案 0 :(得分:1)
鉴于您最近的评论,这应该有效:
insert into user_contacts (userid, contactid)
select u.id, 84
from users u
left join user_contacts uc on u.id = uc.userid and uc.contactid = 84
where uc.id is null
这将在user_contacts表中为当前没有contactid 84行的每个用户插入一行。请务必正确指定列。
或者,您可以使用NOT IN
或NOT EXISTS
。例如,
insert into user_contacts (userid, contactid)
select u.id, 84
from users u
where u.id not in (
select userid
from user_contacts
where contactid = 84)