Maison  >  Questions et réponses  >  le corps du texte

Calculer la somme des champs dans une autre table à l'aide d'une requête MySQL SQL

J'ai un schéma comme celui-ci : table utilisateur avec les attributs "user_id" et "username" et une table de commandes avec les attributs "customer_id" (FK de user_id) et "finalPrice" schéma de base de données Je souhaite obtenir l'utilisateur avec le prix le plus élevé parmi toutes les combinaisons de commandes (essentiellement la somme de toutes les valeurs FinalPrice pour la commande, où customer_id = user_id) Je n'arrive pas à trouver une solution, donc tout soutien sera apprécié

select sum( (select o.final_price from `order` o where u.user_id=o.customer_id)) 
from user u group by u.user_id

est ce que j'ai essayé, mais je continue de recevoir le message d'erreur “子查询返回超过 1 行”. J'ai essayé de lire la documentation, mais je suis encore très inexpérimenté avec SQL.

P粉244155277P粉244155277194 Il y a quelques jours635

répondre à tous(1)je répondrai

  • P粉710478990

    P粉7104789902024-04-07 17:24:28

    Basé sur votre demande Vous ne pouvez pas utiliser SUM 函数,而是使用内部的 SUM,这就是为什么它会抛出类似 Subquery 返回超过 1 行的错误

    comme ça
    SELECT  
    u.user_id,
    (SELECT SUM(o.final_price) FROM `order` o WHERE u.user_id=o.customer_id)
    FROM 
    user u 
    GROUP BY u.user_id;

    répondre
    0
  • Annulerrépondre