在我的表中,有poster_display_no 1和3的值,但没有2。我想获取表中不存在的poster_display_no。下面的查询无法正常工作。知道上面的查询有什么问题吗?
select `poster_display_no` as missing_num
from `poster-judging-app`.poster_details
where `poster_display_no` not in (1,2,3)
答案 0 :(得分:2)
这是一种hack,但是您可以使用要检查的poster_display_no
列表,left join
和列表来构建派生表,并过滤掉丢失的列表:< / p>
select t.poster_display_no
from (
select 1 poster_display_no
union all select 2
union all select 3
) t
left join poster_details p on p.poster_display_no = t.poster_display_no
where p.poster_display_no is null
另一种更具可扩展性的选项是创建一个单独的引用表来存储要检查的poster_display_no
列表,然后将该表直接带到查询中。