首页 > 解决方案 > 对具有多个值的子查询应用过滤器

问题描述

我有一个表USER_DETAILS 和另一个名为PASSWORD的表

USER_DETAILS contains:-
id| name| phone_number

PASSWORD contains:-
id|user_id| password| created_at | password_hint

密码可以包含一个用户的多个条目

现在我想为正在执行此操作的用户获取最新的密码 created_at。

select user.id,created_at from user_details as user
where user.id in (select user_id,max(created_at) from password group by user_id)

但这不起作用,因为子查询返回多个值我怎么能用子查询做到这一点(我知道我也可以用 join 做到这一点,但我正在寻找一个子查询解决方案)

标签: sqlsubqueryin-subquery

解决方案


有很多方法,对于子查询,您可以使用相关查询

select id, (select max(created_at) from password p where p.user_id=u.id) as created_at
from user_details u

推荐阅读