我有下面两张table
表1
| id | category |
|------------|---------------|
| 1 | soap |
| 2 | grocery |
| 3 | snacks |
| 4 | vegetables |
| 5 | dairy |
| 6 | clothes |
| 7 | books |
| 8 | shoes |
表2
| id | parent_cat | code |
|------------|---------------|---------------|
| 1 | soap | SHP |
| 2 | clothes | CLTH |
| 3 | snacks | SNCK |
| 4 | books | BOK |
| 5 | others | OTH |
我想以这样一种方式连接它们,即每个类别将获得一个代码,如果类别不在其他表中,它将获得对应于其他表的代码
期望结果
| id | category | code |
|------------|---------------|---------------|
| 1 | soap | SHP |
| 2 | grocery | OTH |
| 3 | snacks | SNCK |
| 4 | vegetables | OTH |
| 5 | dairy | OTH |
| 6 | clothes | CLTH |
| 7 | books | BOK |
| 8 | shoes | OTH |
我要整排第二张table。我不想使用子查询或任何硬编码,因为它是一个动态数据,所以“其他”一词在不同的场景中会有所不同。
2条答案
按热度按时间ukqbszuj1#
--创建第一个表并加载数据
--创建第二个表并加载数据
--最终查询
--输出
yzuktlbb2#
你想要一个
LEFT JOIN
在Table2
默认情况下code
的价值'OTH'
在中找不到记录时Table2
: