[英]Left outer join sql not working
在我的Android應用中,我有一個包含兩行的數據庫。
table1 table2
|_id | name | |_id | table1_id |amount
我想有一個返回表一中與該行量的總和增加的每一行表2中與對應於_id表1.這是一個table1_id各行的查詢是什么,我想出了到目前為止:
SELECT table1._id, table1.name, SUM(amount)
FROM table1 LEFT OUTER JOIN table2
USING(table1._id,table2.table1._id) ;
當表1完全為空(結果|-|-| 0 |)時,該值也將在SUM(amount)列中返回一個帶有0的行。 我希望當table1
為空時結果完全為空。 當table1
的特定行沒有對應關系時,我希望將它們僅增加0。
有任何改進查詢的想法嗎?
您可以在加入之前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;
SELECT
table1._id, table1.name, SUM(IFNull(amount,0))
FROM
table1 LEFT OUTER JOIN table2
ON
table1._id = table2.table1._id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.