数据库中如何将view查询的view_id结果传入queue查询?
解决跨查询传递view_id的问题
你尝试的语句存在两处关键问题:
- 语法不完整:
view_query_id = "18711987173未闭合引号,也未添加逻辑运算符(比如AND)就直接拼接exists子句 - 逻辑方向错误:你实际需要查询
queue_id,但语句却在查询view_id,且exists仅用于判断存在性,无法实现取值关联
以下是两种可行的正确写法:
方法一:子查询直接匹配取值
因为view_id是唯一标识,用=直接匹配子查询结果即可:
select queue_id from queue where queue_view = ( select view_id from view where view_query_id = "18711987173" )
若未来view_query_id可能返回多个view_id,将=替换为IN即可兼容多值场景。
方法二:JOIN关联表查询
这是更常用的关联查询方式,可读性和性能表现更优:
select q.queue_id from queue q inner join view v on q.queue_view = v.view_id where v.view_query_id = "18711987173"
内容的提问来源于stack exchange,提问作者Unavailable
相关产品推荐
相关产品推荐

