如何连接两个表但包含所有行(即使为空或null)?

6rqinv9w  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(244)

我有两张table。我想合并它们,但包括不返回值的行。这个问题可能会被标记为重复或什么的,但我已经尝试阅读其他帖子,仍然失败。所以我可能低于mysql程序员的平均水平。希望有人能帮忙。
价格表

item_id price_type_id   price_amount
1       1               100.00
1       2               95.00
1       3               90.00
1       4               85.00
1       5               80.00
1       6               75.00
2       1               201.56
2       2               196.45
2       3               191.78
2       4               186.36
3       1               1210.12
3       2               1205.45
3       3               1200.69
3       4               1195.48
3       5               1190.98

表\价格\类型

price_type_id   price_type
1               srp
2               reseller
3               distributor
4               mega
5               depot
6               special

期望输出

item_id price_type_id   price_type
1       srp             100.00
1       reseller        95.00
1       distributor     90.00
1       mega            85.00
1       depot           80.00
1       special         75.00
2       srp             201.56
2       reseller        196.45
2       distributor     191.78
2       mega            186.36
2       depot           null
2       special         null
3       srp             1210.12
3       reseller        1205.45
3       distributor     1200.69
3       mega            1195.48
3       depot           1190.98
3       special         null

到目前为止,我所能得到的最好的就是这个,这就留下了空白。 price_type ```
select b.item_id, a.price_type, b.price_amount
from table_price_type A
left outer join table_price_list B on A.price_type_id=B.price_type_id

它不必是空的,可以是空的(“”)。
k3bvogb1

k3bvogb11#

您可以使用左连接来获得所需的结果。

select b.item_id, a.price_type, b.price_amount
from table_price_type A
left join table_price_list B on A.price_type_id=B.price_type_id

相关问题