【发布时间】:2018-02-08 03:03:25
【问题描述】:
我有一个由 3 个表组成的简单数据库架构
用户
身份证
名称
矩阵
文档
身份证
串行
User_Document(连接表)
用户ID
document_id
我想检查连接表(User_Document)中是否存在列表(Document.serial 列表)的所有项目,然后返回 true 如果至少有一个不存在,它应该返回 false
有我当前的查询
SELECT CASE WHEN EXISTS (
SELECT *
FROM user_document ud
INNER JOIN document d ON d.id= ud.document_id
INNER JOIN user u ON u.id = ud.user_id
where u.matricule='123'
and d.serial in ('#1' ,'#2' , '#3')
)
THEN TRUE
ELSE FALSE
END
这不起作用,因为即使连接表中不存在列表的单个项目,它也会始终返回 true
我在PostgreSQL下
非常感谢
【问题讨论】:
-
I want to check if all items of a document serial list exists in...你的意思是:如果一个元素不存在(但其他元素存在),它应该返回 False?请改写... -
@Wildplasser 。对,就是那样 。谢谢
标签: sql postgresql relational-division