在select语句中使用查询是否对每一行执行该查询?

问题描述 投票:0回答:2

使用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表中的每一行运行嵌套查询吗?

是否有更好的方法来编写此代码?还是看起来应该通过比较两个单独查询的数据集来完成?

sql postgresql query-performance
2个回答
1
投票

1
投票
© www.soinside.com 2019 - 2024. All rights reserved.