sql - SQL Server:每列的更新+计数
问题描述
我正在尝试更新我的数据库。我的USER
表格有一列NbFollower
应该包含关注此用户的人数。
所以我需要从另一个表中计算那个数字FOLLOWING_USER
。
中USER.UserID = 1
出现 4 次FOLLOWING_USER
。这意味着他有4个追随者。
如何为每个人同时使用 UPDATE 和 COUNT 函数?
UPDATE [USER]
SET NbFollower = (SELECT count(User)
FROM FOLLOWING_USER FU
INNER JOIN [USER] U ON FU.[User] = U.UserID)
这将为我的所有用户返回“13”(13 是 中的总行数FOLLOWING_USER
)
所以我需要这样的东西,但为我的所有用户自动化:
SELECT COUNT([User])
FROM FOLLOWING_USER
WHERE [User] = 1
编辑:这里是我的桌子USER
CREATE TABLE [USER]
(
UserID int IDENTITY(1, 1) PRIMARY KEY,
URL varchar(50) NOT NULL,
Name varchar(20) NOT NULL,
Password varchar(50) NOT NULL,
Email varchar(100) NOT NULL,
Age int NOT NULL,
Gender char(1) NOT NULL,
Location varchar(50) NOT NULL,
Description varchar(200) NULL,
NbFollower int NULL DEFAULT 0,
Rating int NULL DEFAULT 0
);
ALTER TABLE [USER]
ADD ShareoutwardzID INT
FOREIGN KEY REFERENCES SHAREOUTWARDZ(ShareoutwardzID),
CONSTRAINT Age CHECK (Age>=18);
INSERT INTO [USER] (Name, URL, Password, Email, Age, Gender, Location, Description, Rating)
VALUES
('lily', '/NAME', 'azertyuop123', 'lily@hotmail.com', 21, 'F', 'USA', NULL, 4);
这是我的桌子FOLLOWING_USER
:
CREATE TABLE FOLLOWING_USER
(
[User] int NOT NULL FOREIGN KEY REFERENCES [USER](UserID),
Follower int NOT NULL FOREIGN KEY REFERENCES FOLLOWER(UserID),
);
INSERT INTO FOLLOWING_USER([User], Follower)
VALUES (1, 9), (2, 9), (4, 9), (6, 9);
解决方案
UPDATE [USER]
SET NbFollower = UserCount.TotalCount
FROM [USER]
INNER JOIN (SELECT COUNT(User) TotalCount, User
FROM [Following_User] GROUP BY User) As UserCount
ON UserCount.User = [USER].UserId
推荐阅读
- javascript - 如何使用 JavaScript 在 HTML 中的 TextArea 内获取文本宽度和高度?
- generics - 用于 Void 和 value 的 Kotlin 泛型
- java - 引用另一个类的对象
- c# - 我无法在控制器中启动参数化构造函数 - ASP.NET MVC EPiServer
- ubuntu - Ubuntu为代理设置环境变量
- java - JOption 上的变量显示 2 次
- javascript - 如何修改 CakePHP 3.6 中的默认日期选择器?
- reactjs - Webpack 生产模式
- python - 如何使用一个月内的日期范围提取特征?
- python - 获取`ndarray`的每个切片中最小值的索引