【发布时间】:2016-06-22 06:38:09
【问题描述】:
我有两个表,表 A 和表 B,结构如下
表A
客户名称
cust_id
cust_age
表B
身份证
cust_id
余额
我需要加入这两个表都检索下面的列
tableA.cust_name,tableA.cust_age,tableB.balance
但是如果我使用下面的查询
select a.cust_name,a.cust_age,sum(b.balance) from tableA a,tableB b where a.cust_id=b.cust_id and b.id = (select max(id) from tableB where cust_id=b.cust_id)
我只得到两个表中都存在的那些行,但我需要在 tableA 中而不是在 tableB 中有客户的所有行 b.balance 应该为 null 或 0。
【问题讨论】:
-
我不明白您的编辑。如果您限制
b.id = (select max(id)...),那么您将匹配b上的一行,因此您对一个值求和,这是没有意义的。或者你不会匹配任何行。你真正想做什么?只是获取每个客户的最新余额?如果是这样,那与您最初询问的内容相比,这是一个相当大的变化。