从Visual FoxPro中的表连接选择中选择

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

我想获取用户信息的最后登录日期。

select * from Users as UU
inner join
(select user_id, max(d_login) from Logins group by user_id) as LL
on UU.user_id = LL.user_id

加入在VFP中不起作用。我们不能在这里加入表来查询?

join visual-foxpro foxpro
2个回答
0
投票

VFP需要在连接中使用ALLTRIM(),否则比较2个值可能会导致不需要的数据。你的代码应该是这样的

select * from Users as UU
inner join
(select user_id, max(d_login) from Logins group by 
user_id) as LL
on ALLT(UU.user_id) == ALLT(LL.user_id)

0
投票

假设您已将User_ID规范化为两个表中的主键,即用户和登录,并具有相同的字段类型和字段长度。我创建了表用户和登录,并使用示例数据测试了此查询,它运行顺利,并给出了准确的结果。

select 
     Users.User_id, 
     Users.Cell1, 
     Users.Name, 
     max(d_login) 
         from Logins, users 
             WHERE users.user_id = logins.user_id 
                 GROUP BY 
                   Users.user_id, Users.Cell1, Users.Name, Logins   
© www.soinside.com 2019 - 2024. All rights reserved.