我有两个MySQL表:
Accounts
table:
account_id | account_name
--------------------------------
12345 | Demo Account
678910 | Acme Inc.
和Users
表:
user_id | account_id | user_name | last_login
---------------------------------------------------------------------------
66666 | 12345 | john.doe | 2021-08-23
77777 | 12345 | jane.doe | NULL
88888 | 678910 | user_one | NULL
99999 | 678910 | user_two | NULL
是否可以创建一个查询,只返回none中的帐户id ?有多少用户曾经登录过(即last_login
为NULL)?
对于这样的查询,唯一的结果应该是678910
。
谢谢!
使用存在逻辑:
SELECT a.*
FROM Account a
WHERE NOT EXISTS (SELECT 1 FROM Users u
WHERE u.account_id = a.account_id AND u.last_login IS NOT NULL);
用简单的英语读,上面的查询是说返回任何我们不能在Users
表中找到具有非空last_login
值的记录的帐户。
是有可能的。
Try the following query:
Select account_id from accounts where account_id IN (Select account_id from users where last_login is not null;