我有两个数据集:
skus表:
old_product_id sku
1 AAA
price_tables表
old_product_id option_one option_two
1 3 Days One Color
1 7 Days One Color
我以为我可以像这样合并:
SELECT old_product_id, null, option_one, option_two
FROM price_tables
GROUP BY old_product_id
UNION ALL
SELECT old_product_id, sku, null, null
FROM skus
GROUP BY old_product_id
但我得到以下结果:
old_product_id NULL option_one option_two
1 NULL 3 Days One Color
1 AAA NULL NULL
预期产出:
old_product_id Sku option_one option_two
1 AAA 3 Days One Color
1 AAA 7 Days One Color
答案 0 :(得分:1)
您不需要需要联接才能获得预期输出的联合
SELECT
s.old_product_id,
s.sku,
p.option_one,
p.option_two
FROM
skus s
JOIN price_tables p USING (old_product_id)
答案 1 :(得分:1)
尝试简单加入怎么样?
SELECT p.old_product_id, s.sku, p.option_one, p.option_two
FROM price_tables p
INNER JOIN skus s
ON s.old_product_id = p.old_product_id
答案 2 :(得分:0)
尝试此查询
SELECT old_product_id, sku, '' As option_two FROM price_tables GROUP BY old_product_id, sku
UNION ALL
SELECT old_product_id, option_one, option_two FROM skus GROUP BY old_product_id, option_one, option_two
这会给你合适的结果。希望它能解决你的问题