即使数据在 table 中不可用,也显示过滤器值

show filter values even if the data is not available in table

于是就有了Table及其内容如下图

id title image
1 First row
2 Second row
3 third row

所以如果我们在table中看到只有3条记录,id分别是1,2,3 table 中没有 4,5 的条目,因此没有数据。 查询:--

select "id", "title", "image" 
FROM "table" 
WHERE "id" IN (1, 2, 3, 4, 5)

所以 table 中只有 3 条记录,但在 where 子句中有 5 个 id。所以期望输出如下所示:--

id title image
1 First row
2 Second row
3 Third row
4
5

因此,即使 table 中没有数据,如果 IN 运算符 select 查询中存在该 ID,也需要将其显示为空。

您不能使用 IN 运算符执行此操作,但您可以将 OUTER JOIN 连接到 VALUES 子句或取消嵌套数组:

SELECT id, title, image
FROM table
RIGHT OUTER JOIN (SELECT unnest(ARRAY[1, 2, 3, 4, 5])) as u(id)
USING (id);

这是一个fiddle