有意思的SQL案例1

如下两个表

Table 1
==============
fn_a1    fn_a2
==============
A      3
B      1
C      2
--------------

Table 2
======================
fn_b1  fn_b2  fn_b3
======================
1      A      A1
2      B      B1
----------------------

结果
======================================
fn_a1  fn_a2  fn_b1  fn_b2  fn_b3
======================================
A      3     1      A1         1
A      3                       2
A      3                       3
B      1     2      B1         1
C      2                       1
C      2                       2
--------------------------------------


提问:
使用 Table 1,Table 2 ,求得如下结果集

SELECT a.fn_a1
     , a.fn_a2
     , b.fn_b1
     , b.fn_b2
     , c.lv fn_b3
  FROM Table_1 a
 INNER JOIN (SELECT 1 lv
             UNION ALL SELECT 2
             UNION ALL SELECT 3
             UNION ALL SELECT 4
             UNION ALL SELECT 5
             UNION ALL SELECT 6
             UNION ALL SELECT 7
             UNION ALL SELECT 8
             UNION ALL SELECT 9
             ) c
    ON a.fn_a2 >= c.lv
  LEFT OUTER JOIN Table_2 b
    ON a.fn_a1 = b.fn_b2
   AND c.lv = 1
 ORDER BY a.fn_a1, c.lv
;

我是知数堂SQL 优化班老师~ ^^
如有关于SQL优化方面疑问和一起交流的请加 并且 @兔子@知数堂SQL优化
高性能MySQL,SQL优化群 有叶金荣,吴炳锡 两位大神坐镇 : 579036588
欢迎加入 知数堂大家庭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值