通过外键连接了2个实体,如何获得没有连接的实体

时间:2018-11-30 08:39:36

标签: sql postgresql

我有2个实体Storage和Item。一个存储可以有多个项目,所以我有一个从项目到存储的外键。

默认情况下,我要使用存储的物品:

select * storage inner join item
on storage.id = item.storage_id

但是我如何获得没有物品的存储空间。

2 个答案:

答案 0 :(得分:1)

您可以使用NOT EXISTS()

SELECT * 
FROM storage S
WHERE NOT EXISTS (SELECT 1 
                    FROM Item I 
                    WHERE S.id = I.storage_id
                  )

答案 1 :(得分:0)

如果要所有存储值,可以使用left join

select *
from storage s left join
     item i
     on s.id = i.storage_id;