lurenjia1993 2020-08-13 17:19 采纳率: 42.9%
浏览 131
已采纳

mysql多级判定查询业务

现在有一个业务需求 连表查询A B C 三表

A表有一个字段is_see 0代表可见 1代表不可见

A,B,C 三表共通字段为userid
要求当查询出来is_see为1时,再判定C表中的同属userid的数据数量大于0才能
查询出结果,怎么写(在一个sql内)

  • 写回答

5条回答 默认 最新

  • jingluan666 2020-08-13 18:31
    关注

    这个需求描述过于简单,没有说B表的数据如果展示,使人会有多种理解,最好给出具体例子

    SELECT * 
    FROM a 
    LEFT JOIN b ON a.`userid`=b.`userid`
    LEFT JOIN c ON b.`userid`=c.`userid` 
    WHERE a.`is_see`=0
    UNION
    SELECT * 
    FROM a JOIN b ON a.`userid`=b.`userid`
    JOIN c ON b.`userid`=c.`userid` 
    WHERE a.`is_see`=1
    

    上面是当is_see为0时不管C表存不存在都把A表取出来,加上is_see为1时ABC表都存在的

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

报告相同问题?

悬赏问题

  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题