求助版主 簡單問題

來源:互聯網
上載者:User
表A 表B
id value id value
20120101 120 20120101 10
20120201 100 20120304 5
20120301 90 20120401 6
20120401 72 20120501 7
20120501 45 20120601 16
20120601 75 20120701 80
20120701 60 20120901 15

兩個表。 id 相同 value 相加 並按id 迴圈輸出。怎麼寫。真心求助啊!


回複討論(解決方案)

select id , sum(value)
(
select * from A
union all
select * from B
) t
group by id;

如果上面的 兩個表 是我sql 語句檢索出的兩條記錄呢。需要按相同id的項相加 不相同的不加。 並按id 迴圈輸出

不懂你的意思,上面的語句試過了嗎。

嗯 這樣寫 是可以的。 但我現在是執行兩條sql 語句 取得上面的值 ,然後迴圈輸出。 按id 倒敘 導致相加對應不上。用的是while 迴圈 。
while($date=mysql_fetch_array($sql)){
$aa=mysql_fetch_array($query)
$bb=mysql_fetch_array($querys)

echo $aa[1]+$bb[1];

}這樣輸出的話 因為我$query $querys 語句是按時間倒敘,當第二個結果集多資料或第一個少資料的話就導致對應不上。只是按倒敘相加 就不準確了。 想解決這個。

為什麼要取兩次,用我哪個sql不就可以了。

兩錶鏈接,用子查詢

1.左串連
2.欄位相加
3.having查詢


你的兩條sql,可否寫成一條,同時返回結果集。
select sum(A.value+B.value),A.value,B.value
from A left join B on A.id=B.id group by A.id

你的兩條sql,可否寫成一條,同時返回結果集。
select sum(A.value+B.value),A.value,B.value
from A left join B on A.id=B.id group by A.id
還有不相同的id也要輸出、

select sum(A.value+B.value),A.value,B.value
from A left join B on A.id=B.id group by A.id

你再union all A.B表 試試

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.