[英]MySQL Help: Good practice for my SQL Query
因此,目前我有一個帶有2個子查詢的查詢,但具有與源相同的表。
UPDATE users
SET UserFollow=(SELECT COUNT(*)
FROM (SELECT * FROM users) as u1
WHERE u1.ReferralID=users.UserID
AND u1.Activated=0),
UserFollower=(SELECT COUNT(*)
FROM (SELECT * FROM users) as u2
WHERE u2.ReferralID=users.UserID
AND u2.Activated=1)
對我來說,它執行的時間恰好超過4毫秒,這對SQL查詢來說是一個不好的做法。 有人可以幫我做一個更實用的SQL查詢嗎?
它的基本作用是獲取與用戶表中每個用戶帳戶相關的已激活和已停用帳戶的計數,並將其保存在用戶表的UserFollow和UserFollower列中。
我會嘗試:
UPDATE users
SET (UserFollow, UserFollower)=
(SELECT COUNT(CASE WHEN u1.Activated=0 THEN 1 END),
COUNT(CASE WHEN u1.Activated=1 THEN 1 END)
FROM (SELECT * FROM users) as u1
WHERE u1.ReferralID=users.UserID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.