如题,多个表查询并整合起来按某些同一含义的字段排序,各个表的字段名可能都不一样
具体场景:
app_member 表有两个字段,app_id 表示用户参与的 app,user_id 表示该用户
app 表表示 app,user_id 表示 app 的所有者
现给定 user_id 要求查询出此用户拥有的和参与的所有 app,并按 app 的创建时间倒序排
可以先查出 id 倒序排:
select id from app as id where user_id = 4757311 union
select app_id from app_member as id where user_id = 4757311 order by id desc
根据查询结果分析可知 union 的优先级高于 order by
然后和 app 表 join 即可得出结果:
select * from (select id from app as id where user_id = 4757311 union
select app_id from app_member as id where user_id = 4757311) a
join app on app.id = a.id order by app.created_at desc
网友评论