[英]Left outer join in MySQL
是否可以將這兩個表連接起來以獲得以下結果。
Table Stats
Date Cus_ID Pur Amount 2015-02-01 2585711 2 100 2015-02-02 2585711 5 250 2015-05-03 2585711 8 400 2015-02-01 2585475 2 100 2015-02-02 2585475 5 250 2015-05-03 2585475 8 400
Table Customer Reg_Date Cus_ID Gender Country 2014-04-11 2585711 Male Sweden 2015-02-01 2585475 Female Sweden
Expected Result Date Cus_ID Pur Amount Gender Country 2014-04-11 2585711 NULL NULL Male Sweden 2015-02-01 2585711 2 100 Male Sweden 2015-02-02 2585711 5 250 Male Sweden 2015-05-03 2585711 8 400 Male Sweden 2015-02-01 2585475 2 100 Female Sweden 2015-02-02 2585475 5 250 Female Sweden 2015-05-03 2585475 8 400 Female Sweden
if I use a left outer join to join the two tables, I get the following result Date Cus_ID Pur Amt Gender Country 2015-02-01 2585711 2 100 Male Sweden 2015-02-02 2585711 5 250 Male Sweden 2015-05-03 2585711 8 400 Male Sweden 2015-02-01 2585475 2 100 Female Sweden 2015-02-02 2585475 5 250 Female Sweden 2015-05-03 2585475 8 400 Female Sweden
My query: Select if(a.Date IS NULL,b.reg_date,a.date) as Date, b.cus_id, pur, Amount, gender, country from (Select * from stats) as a Left outer join (select * from customer) as b on a.cus_id = b.cus_id
任何幫助將不勝感激。 謝謝!
我不知道這是否仍然有意義。
如果要顯示客戶活動的每個日期的想法,即使他們沒有購物,我也會從一個表格開始,該表格首先列出所有日期和客戶對。
select [date],[cust_id]
into #activity
from stats
union
select [reg_date],[cust_id]
from customer
select t1.*, t2.pur, t2.amt
from #activity t1
left outer join stats t2 on
t1.[date] = t2.[date] and t1.[cust_id] = t2.[cust_id]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.