2016-07-18 10 views
1

に2つの異なるテーブルから2列のマージしたがって、バイヤーは訪問者でなければなりません。ここでは、私は2つのテーブルを持っている単一のもの

は、私が持っているデータは以下のとおりです。ここで

PURCHASE_TABLE 

day   user_id_purchase item_id_purchase Type  
---------- ---------------- ---------------- --------  
26/05/2016 AAA    47332    Purchase   
19/05/2016 BBB    46523    Purchase   

VISIT_TABLE

day   user_id_visit Type 
---------- ------------- ----- 
18/06/2016 AAA   Visit  
26/05/2016 AAA   Visit  
19/05/2016 BBB   Visit  
18/05/2016 CCC   Visit 

は、私が持っているしたいものです。でdayuser_idtypeitem_id両方のテーブルから

結果:

day   user_id type  item_id 
---------- ------- -------- ------- 
18/06/2016 AAA  Visit 
26/05/2016 AAA  Visit 
19/05/2016 BBB  Visit 
18/05/2016 CCC  Visit 
26/05/2016 AAA  Purchase 47332 
19/05/2016 BBB  Purchase 46523 

しかし、私はそれを行うことができません。私が得た結果はこれまでの行数の乗算です:私は4行(訪問)* 2行(購入)の代わりに4行+2行を得ました。確かに、私はそれぞれの購入を持って、ここでは各購入でクリック...

は、私が使用するクエリです:私はここに見つけたものにはあまり似て

SELECT 
    visits.user_id, 
    coalesce(visits.day_visit, purchases.day_purchase) AS day, 
    coalesce(visits.type, purchases.type) AS type, 
    purchases.item_id_purchase 
FROM 
    (SELECT DISTINCT 
    day   AS day_visit, 
    user_id AS user_id, 
    'Visit' AS type 
    FROM visit 
    WHERE DAY >= '2016-01-01') visits, 
    (SELECT DISTINCT 
    day   AS day_purchase, 
    user_id_slow AS user_id, 
    item_id  AS item_id_purchase, 
    'Purchase'  AS type 
    FROM purchase 
    WHERE AND Day >= '2016-05-02') purchases 
WHERE visits.user_id_display = purchases.user_id 

より鉱石:How can I merge the columns from two tables into one output? 私はそれはしdoesnのことを考えます私は2つのテーブルの間で異なる列を使用しているので、仕事はありません。

私はJOINs(内と左の両方)も試してみましたが、より良い結果が得られませんでした。

私が望む結果をどのように得ることができますか?

おかげで、あなたは両方のテーブルのすべての行は、あなたがVisitテーブルから不足している列を偽造UNIONで行うことができ、表示したい

JP

+1

あなたは ''メインSELECT'句でdistinct'が何であるかを指定する必要が結果を与える

SELECT day_date, user_id, type, NULL AS item_id FROM Visit UNION SELECT day_date, user_id, type, item_id FROM Purchase ORDER BY type DESC, user_id ASC , day_date ASC 

。あなたの 'join'データから' from'節で明白なものだけではありません。 –

答えて

2

day_date  user_id type  item_id 
------------ ------- ---------- ------- 
"18-06-2016" "AAA" "Visit"  "NULL" 
"26-05-2016" "AAA" "Visit"  "NULL" 
"19-05-2016" "BBB" "Visit"  "NULL" 
"18-05-2016" "CCC" "Visit"  "NULL" 
"26-05-2016" "AAA" "Purchase" "47332" 
"19-05-2016" "BBB" "Purchase" "46523" 
+0

パーフェクト、トニーに感謝! –

関連する問題