在全外连接中将两个子查询列 id 合并为一个 SQL
combine two sub query column id into one in full outer join SQL
我有两个 table,如下所示。使用完全外部连接,我将两个 table 值合并为一个。
我想将所有 id 放入一个列中。
在查询下方使用:
select sum(price),A.id,B.id
from
(select sum(price),id from table_a group by id) A
Full outer join
(select sum(price),id from table_b group by id)B
on A.id=B.id
group by A.id, B.id
table a table b
id price id price
1 20 1 10
2 40 4 20
3 10 5 30
7 10 6 40
现在我的结果如下
id id price
1 1 30
2 ? 40
3 ? 10
? 4 20
? 5 30
? 6 40
7 ? 10
但我想要如下结果:
id price
1 30
2 40
3 10
4 20
5 30
6 40
7 10
提前致谢
爱你
尝试关注
SELECT
ab.id as id,
SUM(price) as price
FROM
(
SELECT id, price FROM table_a
UNION ALL
SELECT id, price FROM table_b
) ab
GROUP BY ab.id
ORDER BY ab.id
;
使用完全外部连接
SELECT
COALESCE(a.id, b.id) as id,
(COALESCE(a.price, 0) + COALESCE(b.price, 0)) as price
FROM
test_a a
FULL OUTER JOIN test_b b ON (a.id = b.id)
我有两个 table,如下所示。使用完全外部连接,我将两个 table 值合并为一个。 我想将所有 id 放入一个列中。 在查询下方使用:
select sum(price),A.id,B.id
from
(select sum(price),id from table_a group by id) A
Full outer join
(select sum(price),id from table_b group by id)B
on A.id=B.id
group by A.id, B.id
table a table b
id price id price
1 20 1 10
2 40 4 20
3 10 5 30
7 10 6 40
现在我的结果如下
id id price
1 1 30
2 ? 40
3 ? 10
? 4 20
? 5 30
? 6 40
7 ? 10
但我想要如下结果:
id price
1 30
2 40
3 10
4 20
5 30
6 40
7 10
提前致谢 爱你
尝试关注
SELECT
ab.id as id,
SUM(price) as price
FROM
(
SELECT id, price FROM table_a
UNION ALL
SELECT id, price FROM table_b
) ab
GROUP BY ab.id
ORDER BY ab.id
;
使用完全外部连接
SELECT
COALESCE(a.id, b.id) as id,
(COALESCE(a.price, 0) + COALESCE(b.price, 0)) as price
FROM
test_a a
FULL OUTER JOIN test_b b ON (a.id = b.id)