У меня есть 2 таблицы:Объединение 2 колонки из 2 разных таблиц в одну
- 1 для посещения людей в магазине
- 1 для покупки, сделанной этими посетителями
Поэтому покупатель должен быть и посетителем.
Вот данные, которые у меня есть:
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? Я думаю, что это Безразлично» t, так как я использую столбцы, которые отличаются между двумя таблицами.
Я попробовал с JOINs (как INNER AND LEFT), так и не принес лучшие результаты.
У вас есть идея, как я могу получить результат, который я желаю?
Спасибо,
JP
Вам нужно указать, что 'distinct' в главном' п select'. Не только то, что отличается от предложения 'from' от ваших данных' join'. –