Join 从VisualFoxPro中的表联接选择

Join 从VisualFoxPro中的表联接选择,join,visual-foxpro,foxpro,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 Join在VFP中不起作用。我们无法在此处查询联接表?VFP需要在联接中使用ALLTRIM,否则比较两个值可能会产生不需要的数据。您的代码应该是这样的 select * from Users as

我想获得用户的信息和他们最后的登录日期

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

Join在VFP中不起作用。我们无法在此处查询联接表?

VFP需要在联接中使用ALLTRIM,否则比较两个值可能会产生不需要的数据。您的代码应该是这样的

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)

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

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   

Join在VFP中不起作用-不准确。如果使用正确的语法,JOIN确实可以在VFP中工作。例如:从Table1左连接Table1.fieldx=table2.fieldn上的table2;您可以在谷歌上搜索:vfp sql query join您使用的是什么版本的vfp?在VFP 5之前,它不支持INTERNAR关键字,在VFP 9之前,它不支持FROM子句中的派生表SELECT。如果id是数字的,则在相等性方面没有问题,前提是用户id是基于字符的,这在原始问题的任何地方都没有暗示。但也没有提到使用的id是数字,所以有50%的几率是字符类型。无论如何,我的目标不仅仅是这个问题,我只想提一下,在vfp中,alltrim在连接和比较两个字符值时是必不可少的。是的,我完全明白了。alltrim和==比较时为是。