在我的Android应用中,我有一个有两行感兴趣的数据库。
table1 table2
|_id | name | |_id | table1_id |amount
我希望有一个查询返回表1中扩充中的每一行,其中table2中每行的行数总和,其中table1_id对应于表1中的_id。这是到目前为止我想出了什么:
SELECT table1._id, table1.name, SUM(amount)
FROM table1 LEFT OUTER JOIN table2
USING(table1._id,table2.table1._id) ;
这个在SUM(金额)列中返回一行0,当表1完全为空时
(结果| - | - | 0 |)。当table1
为空时,我希望结果完全为空。当table1
中的特定行没有对应关系时,我希望它们只能用0增加。
有关改进查询的任何想法?
答案 0 :(得分:1)
加入前你可以group by
:
SELECT t1._id, t1.name, t2.sum_amount
FROM table1 t1
LEFT OUTER JOIN (SELECT table1_id, SUM(amount) AS sum_amount
FROM table2
GROUP BY table1_id) t2
ON t1._id = t2.table1_id;
答案 1 :(得分:0)
SELECT
table1._id, table1.name, SUM(IFNull(amount,0))
FROM
table1 LEFT OUTER JOIN table2
ON
table1._id = table2.table1._id