に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
は、私が持っているしたいものです。でday
user_id
type
item_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
あなたは ''メインSELECT'句でdistinct'が何であるかを指定する必要が結果を与える
。あなたの 'join'データから' from'節で明白なものだけではありません。 –