SQL语句合并查询两张表

问题遇到的现象和发生背景

想要查询两张表:
表A:
| 名称 | 类型 | 价格
| ------ | ------ | ------
| 包 | 1 | 200
| 包 | 2 | 600
| 口红 |2 | 400
| 粉底液 | 1 | 300
表B:
| 名称 | 价格
| ------| ------
| 包 | 200
| 口红| 300

我想要达到的结果
名称类型价格
1400
2600
口红1300
口红2400
粉底液1300
我的解答思路和尝试过的方法

(表A和表B合起来查询,表B内所有价格都属于1类型,如果表A中有对应名称的类型,则价格相加,如果表A中没有,则直接放入结果)
SQL语句怎么写,哭了!
SELECT A.名称, A.类型,A.价格 as 价格
from A left join B on A.名称 = B.名称
where A.价格 != 0 and B.价格 != 0 and A.类型 = 1 group by A.名称
目前只想打这个SQL语句,查询结果是:
| 名称 | 类型 | 价格
| ------ | ------ | ------
| 包 | 1 | 400
求SQL能人指点迷津!不甚感激。

先将两张表合并成一张表,然后再分组求和

select 名称,类型,sum(价格)
from (
    select A.名称 as 名称,A.类型 as 类型,A.价格 as 价格
    from A
    union all
    select B.名称 as 名称,1 as 类型,B.价格 as 价格
    from B
)
group by 名称,类型

建议b表加一个类型字段,默认赋值为1。
不加的话可以试试这段sql

SELECT
a.*
FROM
(SELECT
t1.名称,
t1.类型,
CASE WHEN t2.名称 is not null THEN t1.价格 + t2.价格 ELSE t1.价格 END as 价格
FROM
test1 t1 
LEFT JOIN
test2 t2
ON
t1.名称 = t2.名称 and t1.类型 = 1 
union
SELECT
t2.名称,
1 as 类型,
t2.价格
FROM
test2 t2 
LEFT JOIN
test1 t1
ON
t1.名称 = t2.名称 and t1.类型 != 1) a
GROUP BY
a.名称,a.类型

最后的SQL语句:
SELECT 名称, 类型, sum(价格) FROM
(select A.名称 as 名称,A.类型 as 类型,A.价格 as 价格
from A WHERE A.价格 > 0
union all
select B.名称 as 名称,1 as 类型,B.价格 as 价格
FROM B WHERE B.价格> 0
) as temp
group by 名称,类型;