2014-03-29 59 views
0

有两个表在这种情况下的SQL(SQLite)查询?

User 
======== 
uid 
name 

Data 
========= 
distance 
timeSpend 
isShow 
uid (FK) 

我想获得以下citeria

1) in a specific timeSpend Range 
2) group by the uid (Only select the longest Distance) 
3) only isShow 

尝试下面的查询,但没有运气的距离的顺序列表(DESC)。感谢您的帮助

SELECT User.name, Data.distance, Data.timeSpend 
FROM FROM User,Data 
WHERE id IN (
    SELECT MAX(distance) FROM Data GROUP BY uid WHERE isShow = true 
    ) 
AND User.uid = Data.uid 
ORDER BY Data.distance DESC 

回答

1

你必须填写between声明你喜欢

SELECT u.name, MAX(distance) as max_distance 
FROM User u 
join Data d on u.uid = d.uid 
WHERE isShow = 1 
and d.timeSpend between 1 and 2 
group by u.uid, u.uname 
ORDER BY max_distance DESC 
+0

感谢您的帮助值 – user782104