获取缺少的行

时间:2018-11-12 16:38:41

标签: sql sql-server

我能够获得第一个表中没有的总值的人数,而在后面的表中却没有。我希望能够从第一个表中看到实际的行(决定性的行)。一旦删除count并运行*,我的代码就会崩溃。

SELECT
(SELECT COUNT(*) FROM act18.users)
 -
(SELECT COUNT(*)
from amp.defines, tax.apps
WHERE tc_user_apps_enroll.user_apps_id = tc_user_apps.ID
AND tc_user_apps.db_year = 2017
AND enroll_years = 1)

The result:

20585

当我删除count并尝试查看20585行时,这两个子查询都会泄漏以下错误。

  

当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式。

在获取20585行方面,我请求您的协助。

如何仅从第一个表获取行?任何见识的人都可以!!!!

1 个答案:

答案 0 :(得分:0)

我会使用NOT EXISTS。以下是查询的结构:

SELECT u.*
FROM act18.users u
WHERE NOT EXISTS (SELECT 1
                  FROM amp.defines d JOIN
                       tax.apps a
                       ON a.user_id = u.user_id
                  WHERE d.user_apps_id = a.ID AND
                        a.db_year = 2017 AND
                        a.enroll_years = 1
                );

我只是随机猜测了列的来源。您的问题不清楚这些信息。

请注意,我还修复了JOIN语法。