[英]Update query INNER JOIN mysqli
如果我想使用INNER JOIN
進行更新查詢,在這種情況下,我該怎么辦:
我有一個users
表和user_settings
表。 users
包含列id
, user_settings
包含列userid
。 我想這樣做:
UPDATE users_settings SET commets = 0 WHERE email = "$email";
但是user_settings
不包含email
,因此我想從id
為userid
的users
表中選擇email
。
嘗試這個:
UPDATE user_settings s
INNER JOIN users u ON s.userid=u.id
SET commets = 0 WHERE email = "$email";
注意:在這種情況下,不應有用戶使用相同的電子郵件。
您可以使用此查詢。 它會工作
UPDATE users_settings SET commets = 0 WHERE userid
IN (SELECT id FROM users WHERE email = "$email");
以下內容會有所幫助
UPDATE US SET US.Comments = 0
FROM User_settings US, Users U
WHERE US.Userid = U.id
AND U.email = 'emailid'
JOIN
的性能比SUB QUERIES
更好。 參考這里 。
因此,與其使用此-
UPDATE users_settings SET commets = 0 WHERE userid
IN (SELECT id FROM users WHERE email = "$email");
我建議使用INNER JOIN
UPDATE users_settings
SET commets = 0
FROM user_settings
INNER JOIN users
on users.id = user_settings.userid --JOIN CONDITION
WHERE users.email = "$email" ; --SELECTION/SLICING CRITERION
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.