› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
GroupF
V2EX  ›  MySQL

mysql 5.7 两个临时表 左右连接,同样的临时表 join 连接不上

  •  
  •   GroupF · Nov 16, 2020 · 3864 views
    This topic created in 2140 days ago, the information mentioned may be changed or developed.

    直接能跑的 sql 奉上 ,可能命名不太规范

    左表为主表就出左表,右表为主表出右表

    select * from

    (select DATE_FORMAT(m1, '%Y-%m') as day3 from ( select ('2020-01-23 00:00:00' - INTERVAL DAYOFMONTH('2020-01-23 00:00:00')-1 DAY) +INTERVAL m MONTH as m1 from ( select @rownum:=@rownum+1 as m from (select 1 union select 2 union select 3 union select 4) t1, (select 1 union select 2 union select 3 union select 4) t2, (select 1 union select 2 union select 3 union select 4) t3, (select @rownum:=-1) t0 ) d1 ) d2 where m1<='2020-12-01 00:00:00' order by m1) as datemonths3

    left join (select DATE_FORMAT(m1, '%Y-%m') as day1 from ( select ('2020-01-23 00:00:00' - INTERVAL DAYOFMONTH('2020-01-23 00:00:00')-1 DAY) +INTERVAL m MONTH as m1 from ( select @rownum:=@rownum+1 as m from (select 1 union select 2 union select 3 union select 4) t1, (select 1 union select 2 union select 3 union select 4) t2, (select 1 union select 2 union select 3 union select 4) t3, (select @rownum:=-1) t0 ) d1 ) d2 where m1<='2020-12-01 00:00:00' order by m1) as datemonths2 on datemonths2.day1 = datemonths3.day3

    5 replies  •  2020-12-14 13:45:59 +08:00
    mm163
        1
    mm163  
       Nov 16, 2020   ❤️ 1
    union
    GroupF
        2
    GroupF  
    OP
       Nov 17, 2020
    @mm163 但是 union,完成不了 join 的事情,我固定条数,没有补 0
    GroupF
        3
    GroupF  
    OP
       Nov 17, 2020
    再加上条件应该能行,那我就是在表连接以及用函数的时候他们连接,成为新表时候的顺序是怎么
    举个小例子
    select * from
    ((select '2020' as b,'20211' as a ) union
    (select '2021' as b,'20211' ) ) as av
    group by av.a
    GroupF
        4
    GroupF  
    OP
       Nov 17, 2020
    仅针对这个例子,我用 having 还是能满足大概
    #分组,a 只能出现一次,但是可能 b 没数据,选有数据的分
    select * from
    ((select '2020' as b,'20221' as a ) union
    (select '2021' as b,'20221' ) ) as av
    group by av.a having (b > 0 or b=0)
    GroupF
        5
    GroupF  
    OP
       Dec 14, 2020
    pps,占用大家公共资源了,用相同语句生成的临时表,就不可以 join
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:51 · PVG 23:51 · LAX 08:51 · JFK 11:51
    ♥ Do have faith in what you're doing.