美文网首页
MySQL 多个表查询并整合起来按某些同一含义的字段排序

MySQL 多个表查询并整合起来按某些同一含义的字段排序

作者: 杰哥长得帅 | 来源:发表于2018-08-30 20:49 被阅读265次

    如题,多个表查询并整合起来按某些同一含义的字段排序,各个表的字段名可能都不一样

    具体场景:
    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
    

    相关文章

      网友评论

          本文标题:MySQL 多个表查询并整合起来按某些同一含义的字段排序

          本文链接:https://www.haomeiwen.com/subject/hkgdwftx.html