多个表横向输出和多个表纵向输出示例

本文介绍了如何使用SQL实现数据的横向输出与纵向输出转换,包括RIGHT JOIN和UNION ALL等操作的应用。通过具体示例展示了如何从不同表中提取相同时间戳的数据,并按要求格式化日期时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

横向输出:

SELECT
    t1.*,
    tb_name1.val AS tb_name1_val 
FROM
     tb_name1
    RIGHT JOIN (
    (
SELECT
     tb_name2.datatime AS datatime,
    tb_name2.val AS tb_name2_val,
    tb_name3.val AS tb_name3_val 
FROM
    tb_name2
    RIGHT JOIN tb_name2 ON tb_name2.datatime = tb_name2.datatime 
    ) t1 
    ) ON tb_name1.datatime = t1.datatime 
WHERE
    DATE_FORMAT( t1.datatime, '%Y-%d %H:%i' ) = '2019-16 22:15'

纵向输出:

select datatime ,
    val ,'tb_name1' as tbname
    from tb_name1 WHERE
    DATE_FORMAT( datatime, '%Y-%d %H:%i' ) = '2019-16 22:15'
    union all
    select datatime ,
    val ,'tb_name2'
    from tb_name2 WHERE
    DATE_FORMAT( datatime, '%Y-%d %H:%i' ) = '2019-16 22:15'
    union all
    select datatime ,
    val ,'tb_name3'
    from tb_name3 WHERE
    DATE_FORMAT( datatime, '%Y-%d %H:%i' ) = '2019-16 22:15'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值