簡體   English   中英

更新查詢INNER JOIN mysqli

[英]Update query INNER JOIN mysqli

如果我想使用INNER JOIN進行更新查詢,在這種情況下,我該怎么辦:

我有一個users表和user_settings表。 users包含列iduser_settings包含列userid 我想這樣做:

UPDATE users_settings SET commets = 0 WHERE email = "$email";

但是user_settings不包含email ,因此我想從iduseridusers表中選擇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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM