J'ai deux tables.Requête SQL avancée pour accélérer une opération
One est Started_Games
:
level_id INT
user_id INT
L'autre est Statistics
:
stat_id INT
stat_key NVARCHAR[30]
stat_value INT
Mon application web se compose d'un jeu avec des niveaux qui seuls les membres peuvent jouer dans
Après avoir démarré chacun. jeu, une fonction est appelée et fait ce qui suit (dans une instruction SQL): S'il n'y a pas d'enregistrement qui contient à la fois e Id
de l'utilisateur et le niveau de jeu, il a commencé-l'ajouter à la table Started_Games
.
Lorsque l'utilisateur se déconnecte Je veux faire ce qui suit (Seul le SQL est nécessaire):
D'abord, sélectionnez le nombre des niveaux de jeu qu'il a commencé. Ensuite, mettez à jour le tableau Statistics
dans une ligne spécifique avec le stat_key
= StartedGamesCount
et ajoutez-y le compte trouvé. Après cela, supprimez tous les enregistrements de l'utilisateur actuel (les lignes "comptées");
Je n'ai jamais mis en œuvre plusieurs instructions SQL dans la même requête, et c'est ce que je suis venu avec jusqu'à présent:
DELETE FROM [Started_Games] WHERE [user_id] IN (SELECT COUNT(*) FROM [Started_Games] WHERE [user_id] = @UserId)
Notez qu'il ne comprend pas le processus de mise à jour que je veux exécuter.
Une aide?
Faire plus d'un des appels de base de données est exactement ce que je veux éviter. À ce moment, je ne suis pas autorisé à utiliser des procédures stockées. Cette question a été posée pour m'aider à terminer un projet que je devrais livrer dans deux mois. – Novak