suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Berechnen Sie die Summe der Felder in einer anderen Tabelle mithilfe einer MySQL-SQL-Abfrage

Ich habe ein Schema wie dieses: Benutzertabelle mit den Attributen „user_id“ und „username“ und eine Auftragstabelle mit den Attributen „customer_id“ (FK von user_id) und „finalPrice“ Datenbankschema Ich möchte den Benutzer mit dem höchsten Preis unter allen Bestellkombinationen erhalten (im Wesentlichen die Summe aller FinalPrice-Werte für die Bestellung, wobei customer_id = user_id ist). Ich kann keine Lösung finden, daher wäre ich für jede Unterstützung dankbar

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

habe ich versucht, aber ich erhalte ständig die Fehlermeldung “子查询返回超过 1 行”. Ich habe versucht, die Dokumentation zu lesen, bin aber immer noch sehr unerfahren mit SQL.

P粉244155277P粉244155277255 Tage vor788

Antworte allen(1)Ich werde antworten

  • P粉710478990

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

    根据您的查询 您不能像这样使用 SUM 函数,而是使用内部的 SUM,这就是为什么它会抛出类似 Subquery 返回超过 1 行的错误

    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;

    Antwort
    0
  • StornierenAntwort