sql查询结果使用的几种场景

当写sql语句时,某些条件不能直接获取,则需要通过查询获取子集所需要的条件;以下是获取获取条件时,几个不同的使用场景。

1. 作为字段使用

使用范围: select 语句下

example: 获取层次级数方便后续使用

( SELECT (LENGTH(tree_path) - LENGTH( REPLACE(tree_path,',','') ) ) ) as level

2. 作为集合使用

使用范围:where 后

select * from A where name in (select name from B)

3. 作为表使用

当以上条件不适用时,可以构造查询临时表,来满足自己所需要的操作 比如(1. 嵌套查询 2. 连接查询)

INNER JOIN (                        
            SELECT A.`code`,
                   A.`name`,
                   B.`code` as child_code
            FROM `areas` as A
            LEFT JOIN areas AS B ON A.`code` = B.parent_code
            UNION ALL
            SELECT C.code, C.name, C.code as child_code
            FROM `areas` C      
           ) k ON p.code = k.child_code
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值