对账sql

本文提供了一个复杂的SQL查询案例,展示了如何通过左连接和右连接合并两个表,并使用UNION操作符来获取非匹配记录。该查询从trade表和wxw表中选取了特定类型的订单数据。

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

 

 

SELECT
    *
FROM
    (
        SELECT
            t.id 't_id',
            t.order_no 't_order_no',
            t.amount 't_amount',
            t.type 't_type',
            w.id 'w_id',
            w.order_no 'w_order_no',
            w.amount 'w_amount'
        FROM
            (
                SELECT
                    tr.id,
                    tr.order_no,
                    tr.amount,
                    tr.type
                FROM
                    trade tr
                WHERE
                    tr.type = 1
            ) t
        LEFT JOIN wx w ON t.order_no = w.order_no
        AND t.amount = w.amount
        UNION
            SELECT
                t.id 't_id',
                t.order_no 't_order_no',
                t.amount 't_amount',
                t.type 't_type',
                w.id 'w_id',
                w.order_no 'w_order_no',
                w.amount 'w_amount'
            FROM
                (
                    SELECT
                        tr.id,
                        tr.order_no,
                        tr.amount,
                        tr.type
                    FROM
                        trade tr
                    WHERE
                        tr.type = 1
                ) t
            RIGHT JOIN wx w ON t.order_no = w.order_no
            AND t.amount = w.amount
    ) u
WHERE
    u.t_id IS NULL
OR u.w_id IS NULL

 

 

转载于:https://www.cnblogs.com/liuyifan/p/5060461.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值