MySql 中的 JOIN 和 SUM?
JOIN and SUM in MySql?
总的来说,我是 MySQL 的新手,所以我有一个基本问题。所以我有这两个表
CREATE TABLE customer (
id SMALLINT UNSIGNED NOT NULL auto_increment,
name VARCHAR(255) CHARACTER SET latin1 NOT NULL,
birthdate DATE NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE account (
id SMALLINT UNSIGNED NOT NULL auto_increment,
balance DECIMAL(7,2) NOT NULL DEFAULT 0.0,
ownedBy SMALLINT UNSIGNED NOT NULL,
nickname VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL ,
PRIMARY KEY (id),
FOREIGN KEY (ownedBy) REFERENCES customer(id) ON UPDATE CASCADE ON DELETE CASCADE
);
我希望能够获得所有拥有帐户的客户以及他们所有银行帐户中的总额,但老实说,我对如何正确地做到这一点感到困惑。我达到了
SELECT customer.name FROM customer JOIN account ON customer.id = account.id;
首先,从您现有的查询开始,您需要修复连接条件:table account
通过列 ownedby
与 customer
相关,而不是 [=14] =].然后,您可以聚合和求和:
select c.name, sum(a.balance) as total_balance
from customer c
inner join account a on a.ownedby = c.id
group by c.id
总的来说,我是 MySQL 的新手,所以我有一个基本问题。所以我有这两个表
CREATE TABLE customer (
id SMALLINT UNSIGNED NOT NULL auto_increment,
name VARCHAR(255) CHARACTER SET latin1 NOT NULL,
birthdate DATE NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE account (
id SMALLINT UNSIGNED NOT NULL auto_increment,
balance DECIMAL(7,2) NOT NULL DEFAULT 0.0,
ownedBy SMALLINT UNSIGNED NOT NULL,
nickname VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL ,
PRIMARY KEY (id),
FOREIGN KEY (ownedBy) REFERENCES customer(id) ON UPDATE CASCADE ON DELETE CASCADE
);
我希望能够获得所有拥有帐户的客户以及他们所有银行帐户中的总额,但老实说,我对如何正确地做到这一点感到困惑。我达到了
SELECT customer.name FROM customer JOIN account ON customer.id = account.id;
首先,从您现有的查询开始,您需要修复连接条件:table account
通过列 ownedby
与 customer
相关,而不是 [=14] =].然后,您可以聚合和求和:
select c.name, sum(a.balance) as total_balance
from customer c
inner join account a on a.ownedby = c.id
group by c.id