J'essaie de mettre à jour ma base de données. Mon USER
possède une colonne NbFollower
qui doit contenir le nombre de personnes qui suivent cet utilisateur.
Je dois donc compter ce nombre à partir d'un autre tableau FOLLOWING_USER
.
Le USER.UserID = 1
apparaît 4 fois dans FOLLOWING_USER
. Cela signifie qu'il a 4 adeptes.
Comment puis-je utiliser la fonction UPDATE et un COUNT en même temps, pour chaque personne ?
UPDATE [USER]
SET NbFollower = (SELECT count(User)
FROM FOLLOWING_USER FU
INNER JOIN [USER] U ON FU.[User] = U.UserID)
Cela renvoie "13" pour TOUS mes utilisateurs (13 est le nombre total de lignes dans le fichier FOLLOWING_USER
)
J'ai donc besoin de quelque chose comme ça, mais automatisé pour tous mes utilisateurs :
SELECT COUNT([User])
FROM FOLLOWING_USER
WHERE [User] = 1
EDIT : voici ma table 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);
Voici ma table 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);