Oracle从两个表中选择数据,如果一个为空,则返回null

con*_*ine 2 oracle select join

我在oracle数据库中有两个表(fruit_cost和fruit_availability),详情如下:

fruit_cost如下所示:

fruit_name | fruit_cost
apple | 30
橙色| 7
瓜| 14

fruit_availability看起来像这样:

fruit_name | fruit_availability
表是空

的有任何好的选项来获得这样的结果:

fruit_name | fruit_cost | fruit_availability
apple | 30 | null
orange | 7 | null
瓜| 14 | 空值

Tar*_*ryn 7

您可以使用a加入表LEFT JOIN.

无论表中是否有匹配的记录,A LEFT JOIN都将返回fruit_cost表中的所有记录fruit_availability.您的查询将如下所示:

select fc.fruit_name, 
  fc.fruit_cost,
  fa.fruit_availability
from fruit_cost fc
left join fruit_availability fa
  on fc.fruit_name = fa.fruit_name
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

结果是:

| FRUIT_NAME | FRUIT_COST | FRUIT_AVAILABILITY |
------------------------------------------------
|      melon |         14 |             (null) |
|     orange |          7 |             (null) |
|      apple |         30 |             (null) |
Run Code Online (Sandbox Code Playgroud)

如果您需要帮助,请在此学习连接语法,这是对连接的一种很好的视觉解释.