MySQL數據庫多表之間的查詢
問題描述
問題解答
回答1:思路一分兩種情況選出符合要求的company_id并union
把這些company_id的earning求和(2013-2014)
連接上company_name
好像搞的比較復雜。
with cid(id) as ( select company_id from tableB where year = 2014 and earning > 20 union select company_id from tableB where year in (2013, 2014) group by company_id having sum(earning) > 50), cid_earning(id, earning) as ( select company_id, sum(earning) from tableB where company_id in (select id from cid) and year in (2013, 2014) group by company_id)select a.company_name, c.earningfrom cid_earning c left join tableA a using(id)思路二
如果把2013和2014年的earning作為表的兩個field,SQL的邏輯會清晰很多:
withe3(id, earning) as ( select company_id, earning from tableB where year = 2013), e4(id, earning) as ( select company_id, earning from tableB where year = 2014)select a.company_name, e3.earning + e4.earning as earningfrom e3 inner join e4 using(id)left join tableA a using(id)where e4.earning > 20 or e3.earning + e4.earning > 50回答2:
好復雜哦,同問,這樣的sql怎么寫,我在想是不是可以寫個存儲過程,畢竟存儲過程處理這樣復雜的邏輯容易一點
相關文章:
1. javascript - JS設置Video視頻對象的currentTime時出現了問題,IE,Edge,火狐,都可以設置,反而chrom卻...2. java固定鍵值轉換,使用枚舉實現字典?3. 如何為每個應用程序配置tomcat 6的logs / catalina.out。(為sys.out,sys.err配置Web應用程序特定的日志文件)4. css - ionic中的柵格布局如何讓文字內容多少不同的每一列中的內容都能垂直居中?5. php自學從哪里開始?6. phpstady在win10上運行7. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了8. javascript - canvas設計鼠標畫圖功能一筆畫出多條并行彩色線條9. 這是什么情況???10. javascript - 微信網頁開發從菜單進入頁面后,按返回鍵沒有關閉瀏覽器而是刷新當前頁面,求解決?
