如果一行存在,Postgres 加入并返回标志

NiK*_*NiK 3 sql postgresql

我非常确定这在 SQL 中是可能的,但我不确定如何实现这一点。我正在使用 PostgreSQL

我有2张桌子

  • users 带有列 id、name 和 created_date
  • user_docs 带有列 id、值

我想编写一个选择查询,它返回所有users表列,以及另一个名为的列,该列has_docs指示用户在user_docs表中是否有任何文档行。

有人可以帮忙吗?

小智 8

您可以保留连接两个表并检查值是否为空

SELECT u.id,
       u.name,
       u.created_date,
       CASE WHEN ud.value IS NOT NULL
            THEN 'Y'
            ELSE 'N'
        END has_docs
  FROM users u
  LEFT JOIN user_docs ud
    ON u.id = ud.id
Run Code Online (Sandbox Code Playgroud)