中删除重复的user_id时
我正在开发一个移动应用程序,并使用SQLITE将离线使用的数据存储到本地数据库中。为了使本地数据库与远程数据库同步,我查询了最近10个收藏夹和最近10个匹配。使用以下查询:
select user_id from users where is_favorite>0 order by is_favorite desc limit 10
union
select user_id from users where is_auto_match>0 order by is_match desc limit 10
请注意,下面的查询工作正常,这证实在我的本地数据库中没有错误:
select user_id from users where is_favorite>0
union
select user_id from users where is_auto_match>0
在复合查询中不允许ORDER BY;唯一允许的地方是在整个查询的末尾,它影响所有记录。
为了能够对两个单独的查询使用ORDER BY,您必须使用子查询:
SELECT *
FROM (SELECT user_id
FROM users
WHERE is_favorite > 0
ORDER BY is_favorite DESC
LIMIT 10)
UNION ALL
SELECT *
FROM (SELECT user_id
FROM users
WHERE is_auto_match > 0
ORDER BY is_match DESC
LIMIT 10)
使用
Select * From(select user_id from users where is_favorite>0 order by is_favorite desc limit 10)
UNION ALL
Select * From(select user_id from users where is_auto_match>0 order by is_match desc limit 10)
注意使用UNION ALL:UNION ALL给出具有重复user_id的结果当UNION从结果