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

时间:2017-09-14 23:33:32

标签: sql postgresql

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

我有2张桌子

  • users,其中包含列ID,名称和created_date
  • user_docs,其中包含列ID,值

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以将两个表连接起来并检查值是否为null

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