我能够获得第一个表中没有的总值的人数,而在后面的表中却没有。我希望能够从第一个表中看到实际的行(决定性的行)。一旦删除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
行方面,我请求您的协助。
如何仅从第一个表获取行?任何见识的人都可以!!!!
答案 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
语法。