使用Postgres,我编写了以下查询:
SELECT
*,
CASE
WHEN
(SELECT count(*) FROM applications WHERE applications.user_id = 774 AND applications.job_id = jobs.id) > 0
THEN 1
ELSE 0
END
AS has_applied
FROM jobs
它从我的数据库中选择所有作业,并运行检查以查看当前登录的用户(在这种情况下,标识为774)是否已应用于该作业。
我只看到一个查询在我的数据库GUI中运行,但是这不必为jobs
表中的每一行运行嵌套查询吗?
是否有更好的方法来编写此代码?还是看起来应该通过比较两个单独查询的数据集来完成?