首页 > 解决方案 > 如何将值与子查询一起添加到 POSTGRES IN 子句

问题描述

我有一个简单的查询,需要 PostgreSQL 中的简单解决方案。查询是

SELECT distinct(id)
FROM users
WHERE id IN (1, 2, 3) 
OR id IN (SELECT user_id FROM users_names WHERE user_id IN (1, 2, 3) AND is_valid = true)

笔记:

  1. 例如 1、2、3、4 是有效的 ID。
  2. 子查询应仅返回 1、2、3 的 id

假设 3 是有效的,所以它应该返回 1、2、3 而不是 4

但似乎它不起作用,我错过了一些基础知识,但我能得到答案。

标签: postgresql

解决方案


SELECT id
FROM users
WHERE id IN (1, 2, 3)
   OR id IN (SELECT id FROM users WHERE is_valid = true)

更好的是:

SELECT id
FROM users
WHERE id IN (1, 2, 3)
   OR is_valid = true

推荐阅读