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

时间:2018-08-08 15:14:00

标签: join visual-foxpro foxpro

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

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中不起作用。我们无法在此处联接表进行查询吗?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

假设您在两个表(即用户和登录名)中都将标准化的User_ID作为主键,并且具有相同的字段类型和字段长度。我创建了表users和Logins,并使用示例数据对该查询进行了测试,它运行顺利并给出了准确的结果。

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