0

我有两个表users (id, username, etc...)user_contacts (id, userid, contactid, etc...)

鉴于我user的 id 为 84,为了将缺失的记录插入到84 与所有其他用户user_contacts相关联,最有效的查询是什么?user

4

1 回答 1

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 表中为当前没有联系人 ID 为 84 的行的每个用户插入一行。确保正确指定列。

或者,您可以使用NOT INor 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)
于 2013-04-01T13:58:41.783 回答