[英]PHP & MySQL check mysql left join with specified condition
我正在使用xenforo,它具有表:
我需要查詢以將user_group_id從15更改為14(如果他們沒有任何線程)(線程中的sticky = 0)。
左聯接是否可行?如果可以,怎么辦?
謝謝。
update user u
set u.user_group_id=14
where u.user_group_id=15 and
(select sticky from thread where thread_id = u.user_id)=0;
你的意思是:
UPDATE user SET user_group_id=14 WHERE user_group_id=15 AND
0 = (SELECT COUNT(*) FROM thread WHERE sticky=0 AND user_id=user.user_id)
這不使用LEFT JOIN。 使用LEFT JOIN是否必須?
這會做到的
update user set user_group_id = 14
where user_group_id = 15
and user_id in (select user_id from threads where sticky=0)
編輯:
在這種情況下,除了使用子查詢,您還可以在更新時將兩個表連接在一起,如下所示
update user u
inner join thread t on
u.user_id = t.user_id and t.sticky = 0
set u.user_group_id = 14
where u.user_group_id = 15
在http://sqlfiddle.com/#!2/58b121/1上查看sqlfiddle演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.