fogu777 2013-04-20 06:45
浏览 204
已采纳

请教多表关联查询

大家好,我想写一个sql实现逻辑如下请帮忙执教~

user用户表有username,userid字段
app应用字典表有appname,appcode(相当于id),valid(是否有效),fee(是否免费),regurl(注册url),indexurl(首页)等字段
userapp用户应用使用表userid,appcode,valid(生效)等字段

对于免费的应用,任何用户都可以用,对于收费的应用,用户必须有权限才能使用,也就是说必须在用户应用表里有对应记录,在userapp里用户和应用是一对多的关系.

现在我想把用户所有可以使用的应用和不可以使用的应用都查出来,如果是可以使用的,记录最后一条加上一个1,如果是不可以使用的,记录最后一条加上一个0,请问这条sql该怎么写?非常感谢!!

  • 写回答

3条回答 默认 最新

  • jinnianshilongnian 2013-04-20 08:13
    关注

    select

    app.*,

    case
    when free = true then 1
    when (select count(*) from userapp where app.appocde = userapp.appcode and userapp.userid=?) > 0 then 1
    else 0 end
    from app

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建