2013-04-01 43 views
0

缺失記錄我有兩個表users(ID,用戶名等)user_contacts(ID,用戶ID,使用ContactID,等...)插入從表

考慮到我有一個user瓦特/ 84的ID,這將是爲了最有效的查詢有插入user_contactsuser84瓦特關聯丟失記錄/所有其他用戶?

+0

此問題尚不清楚。你的意思是你想把每個其他用戶添加爲用戶'84'的聯繫人嗎? – plalx

+1

@plalx正確。我希望用戶84被列爲所有用戶的聯繫人 –

回答

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 INNOT 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) 
+0

謝謝!完美的作品,只需要約0.15秒完成 –

+0

@KyleDecot - np,很高興我能幫上忙! – sgeddes