簡體   English   中英

MySQL中的左外部聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM