首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在这个左联接中保留空记录?

如何在这个左联接中保留空记录?
EN

Stack Overflow用户
提问于 2018-08-28 14:05:27
回答 1查看 1.7K关注 0票数 2

尽管在fruit_batch_info中没有记录,但我确实希望AP01在我的结果中,所以我使用了左联接。

然而,一旦我添加'where fruit_batch_info=11‘,我的AP01就不再出现在我的结果中。

如何将AP01保存在我的结果中?

需求:报告“all_fruits”中的所有记录以及关于“fruit_batch=11”的任何信息

期望结果

代码语言:javascript
复制
ID  , DESC   , BATCH, STORAGE 
----- -------- ------ ------------
APO1, Apple  , null , null  
PE01, Pear   , 11   , Warehouse-11
KU01, Kumquat, 11   , Warehouse-11

以下是我的查询:

代码语言:javascript
复制
with all_fruits as
(select 'AP01' as fruit_id, 'Apple' as fruit_desc from dual union all
 select 'PE01' as fruit_id, 'Pear' as fruit_desc from dual union all
 select 'KU01' as fruit_id, 'Kumquat' as fruit_desc from dual),
 fruit_batch_info as
 (select 'PE01' as fruit_id, '10' as fruit_batch , 'Warehouse-10' as fruit_storage from dual union all
  select 'PE01' as fruit_id, '11' as fruit_batch , 'Warehouse-11' as fruit_storage from dual union all
  select 'PE01' as fruit_id, '12' as fruit_batch , 'Warehouse-12' as fruit_storage from dual union all
  select 'KU01' as fruit_id, '10' as fruit_batch , 'Warehouse-10' as fruit_storage from dual union all
  select 'KU01' as fruit_id, '11' as fruit_batch , 'Warehouse-10' as fruit_storage from dual)

 select a.fruit_id  , 
        fruit_desc, 
        fruit_batch,
        fruit_storage
 from all_fruits  a 
 left join fruit_batch_info i  on a.fruit_id = i.fruit_id
 where i.fruit_batch='11' 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-28 14:09:38

使用LEFT JOIN时,将该表中的条件添加到join ON子句,而不是WHERE子句:

代码语言:javascript
复制
left join fruit_batch_info i  on a.fruit_id = i.fruit_id and i.fruit_batch='11' 
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52059839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档