zoukankan      html  css  js  c++  java
  • sql 分析

    SELECT
     case  when  a.value is null || a.`value` = ''  ||  LOCATE('nocheck', a.VALUE) > 0
    then  ''
    ELSE 
    a.value 
    end  as  bgy_contract_project ,
     case  when  c.value is null || c.`value` = '' || LOCATE('nocheck', c.VALUE) > 0
    then  ''
    ELSE 
    c.value 
    end  as contract_name
    FROM
      ar_approve_entry_result a
    LEFT  JOIN ar_approve_entry_result c ON a.approve_result_uuid = c.approve_result_uuid
    AND c.entry_UUID = 'AREN1295'
    INNER JOIN (
      SELECT
        b.uuid,
        b.pay_comfirm_uuid
      FROM
        ar_approve_result b
      WHERE
        b.sys_status = 1
      AND b.pay_comfirm_uuid = '432d9912f3f14d58a88251d9cd739a6f'
      ORDER BY
        b.db_create_sys_time DESC
      LIMIT 0,1
    ) b ON a.approve_result_uuid = b.uuid
    WHERE
      a.sys_status = 1
    AND a.entry_UUID = 'AREN17324' ;
    
    
    
    
    这个sql分析:
    第一点: A LEFT  JOIN  B  (A 表数据一定存在 ,然后  B 表的数据 不一定存在,
    所以在 on  后面 紧跟  B表的关联 and c.entry_UUID = 'AREN1295' 这个 关联条件,
    AREN1295是 履约文件节点的合同名称/工程名称/项目名称,因为这样,即使 B表数据没有,也没有关系, 
    而 在WHERE  后面加这个AND a.entry_UUID = 'AREN17324' 采购订单的工程名称/项目名称 ,是因为这个是一定存在的)
    第二点:case  when 的使用
    第三点:LOCATE('nocheck', a.VALUE) > 0 使用,这个 的使用 意思是,当 a.VALUE 的值为 nocheck 的时候,
    LOCATE()这个方法的返回值,就是 大于0 ,接着 就用它作为了 判断条件
    
    
        
  • 相关阅读:
    考研岁月
    sklearn 翻译笔记:KNeighborsClassifier
    网站不让复制的办法
    关于VMware Workstation 15 Player 虚拟机安装Windows系统却无法安装vmware tools的解决
    今天真是太傻了
    GoogleHacking相关技巧
    判断ARP欺骗
    Linux各个文件及其含义
    小白的开始—转一篇Linux系统入门的文章
    课时39.细线表格(理解)
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/12106957.html
Copyright © 2011-2022 走看看