私は2つのテーブルusers
(id, username, etc...)とuser_contacts
(id, userid, contactid, etc...)を持っています。
user
ID が 84 であることを考えると、不足しているレコードを挿入して84 を他のすべてのユーザーuser_contacts
と関連付けるために最も効率的なクエリは何でしょうか?user
私は2つのテーブルusers
(id, username, etc...)とuser_contacts
(id, userid, contactid, etc...)を持っています。
user
ID が 84 であることを考えると、不足しているレコードを挿入して84 を他のすべてのユーザーuser_contacts
と関連付けるために最も効率的なクエリは何でしょうか?user
あなたの最新のコメントを考えると、これはうまくいくはずです:
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
これにより、現在 contactid 84 の行を持たない各ユーザーの user_contacts テーブルに行が挿入されます。列を正しく指定してください。
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)