Sql 如何从两个不同的表中进行选择并在Oracle中获得以下内容

Sql 如何从两个不同的表中进行选择并在Oracle中获得以下内容,sql,database,oracle,Sql,Database,Oracle,我需要做以下工作: 从每个分支机构中,查找经理姓名、他们管理的客户以及他们管理的客户的总存款余额 我的数据库看起来像这样 drop table branch; CREATE TABLE branch ( BNO NUMBER(1,0), MANAGER_NAME VARCHAR(6), Salary NUMBER(6,0), MGRSTARTDATE TIMESTAMP (2) ); INSERT INTO branch VALUES (1,'BOB',100000,'19-JUN-2001

我需要做以下工作:

从每个分支机构中,查找经理姓名、他们管理的客户以及他们管理的客户的总存款余额

我的数据库看起来像这样

drop table branch;
CREATE TABLE branch (
BNO NUMBER(1,0),
MANAGER_NAME VARCHAR(6),
Salary NUMBER(6,0),
MGRSTARTDATE TIMESTAMP (2)
);


INSERT INTO branch VALUES
(1,'BOB',100000,'19-JUN-2001');
INSERT INTO branch VALUES
(2,'CHRIS',150000,'01-Jan-2005');
INSERT INTO branch VALUES
(3,'ANGELA',90000,'22-May-1998');
INSERT INTO branch VALUES
(4,'KIM',90000,'29-May-1996');

drop table account;
CREATE TABLE account (
ACC NUMBER(3,0),
CNAME VARCHAR(4),
BNO NUMBER(1,0),
BALANCE NUMBER(4,0)
);

INSERT INTO account VALUES
(101,'LISA',1,100);
INSERT INTO account VALUES
(102,'LISA',2,500);
INSERT INTO account VALUES
(103,'TOM',1,400);
INSERT INTO account VALUES
(104,'JOHN',3,1200);
INSERT INTO account VALUES
(105,'TOM',3,900);
到目前为止,我不知道下一步该做什么

SELECT MANAGER_NAME
FROM branch;
我想我需要做一些类型的加入,但不知道如何做。

试试这个

select br.manager_name, acc.cname from account acc 
left join branch br 
ON acc.bno = br.bno
下面是经理管理的余额总和

select br.manager_name, acc.cname, sum(acc.balance) from account acc 
left join branch br 
ON acc.bno = br.bno
group by br.bno, br.manager_name

您将要使用外部联接这与左/右联接相同。外部联接获取一个表中的所有值,并添加第二个表中与键匹配的数据。匹配的关键是BNO值——hoangnh的示例涵盖了这一点


作为参考,另一种类型的联接是内部联接,它不起作用,因为它只返回两个表中键匹配的值。在您的示例中,执行内部联接将从最终结果中排除BNO=4。进行外部联接时,客户值将包含BNO=4和null,谢谢。我还得再加上它来保持平衡,但这是我需要帮助我度过难关的答案question@gravity00我编辑了客户余额总和的答案