尽管在fruit_batch_info中没有记录,但我确实希望AP01在我的结果中,所以我使用了左联接。
然而,一旦我添加'where fruit_batch_info=11‘,我的AP01就不再出现在我的结果中。
如何将AP01保存在我的结果中?
需求:报告“all_fruits”中的所有记录以及关于“fruit_batch=11”的任何信息
期望结果
ID , DESC , BATCH, STORAGE
----- -------- ------ ------------
APO1, Apple , null , null
PE01, Pear , 11 , Warehouse-11
KU01, Kumquat, 11 , Warehouse-11以下是我的查询:
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' 发布于 2018-08-28 14:09:38
使用LEFT JOIN时,将该表中的条件添加到join ON子句,而不是WHERE子句:
left join fruit_batch_info i on a.fruit_id = i.fruit_id and i.fruit_batch='11' https://stackoverflow.com/questions/52059839
复制相似问题