这怕是我目前写过最长的查询语句

SELECT
    user_basic.id 
FROM
    user_basic 
WHERE
    id IN (
    SELECT
        user_basic.id 
    FROM
        user_basic
        JOIN staff ON user_basic.staff_id = staff.id
        JOIN (
        SELECT
            * 
        FROM
            plt_copy 
        WHERE
            id IN (
            SELECT
                MAX( plt_copy.ID ) AS ID 
            FROM
                (
                SELECT
                    * 
                FROM
                    user_circulation 
                WHERE
                    id IN (
                    SELECT
                        user_circulation.id 
                    FROM
                        (
                        SELECT
                            MAX( user_circulation.id ) AS id,
                            user_circulation.user_id,
                            user_circulation.new_staff,
                            user_circulation.operation_method 
                        FROM
                            user_circulation 
                        WHERE
                            user_circulation.operation_method != 8 
                        GROUP BY
                            user_circulation.user_id 
                        HAVING
                            ( ( count( user_circulation.user_id ) = 1 AND user_circulation.operation_method != 5 ) OR count( user_circulation.user_id ) != 1 ) 
                        ) AS user_circulation 
                    ) 
                ) AS user_circulation
                JOIN staff ON staff.id = user_circulation.new_staff
                LEFT JOIN plt_copy ON ( user_circulation.user_id = plt_copy.USER_ID ) 
                AND ( plt_copy.EMPCODE = staff.work_num ) 
                AND plt_copy.CALL_RESULT = 1 
            WHERE
                plt_copy.ID IS NOT NULL 
            GROUP BY
                user_circulation.user_id 
            ) 
        ) AS plt_copy ON plt_copy.USER_ID = user_basic.id 
    WHERE
        plt_copy.EMPCODE = staff.work_num 
        AND plt_copy.CALL_RESULT = 1 
        AND user_basic.staff_id IS NOT NULL 
    AND
    CASE
            
            WHEN ( user_basic.allot_time ) < UNIX_TIMESTAMP( plt_copy.CALL_TIME ) THEN
        FALSE ELSE TRUE 
        END 
        GROUP BY
            USER_ID 
        ) 
        OR id IN (
        SELECT
            user_circulation.user_id 
        FROM
            (
            SELECT
                MAX( plt_copy.ID ) AS id,
                user_circulation.user_id 
            FROM
                (
                SELECT
                    * 
                FROM
                    user_circulation 
                WHERE
                    id IN (
                    SELECT
                        user_circulation.id 
                    FROM
                        (
                        SELECT
                            MAX( user_circulation.id ) AS id,
                            user_circulation.user_id,
                            user_circulation.new_staff,
                            user_circulation.operation_method 
                        FROM
                            user_circulation 
                        WHERE
                            user_circulation.operation_method != 8 
                        GROUP BY
                            user_circulation.user_id 
                        HAVING
                            ( ( count( user_circulation.user_id ) = 1 AND user_circulation.operation_method != 5 ) OR count( user_circulation.user_id ) != 1 ) 
                        ) AS user_circulation 
                    ) 
                ) AS user_circulation
                JOIN staff ON staff.id = user_circulation.new_staff
                LEFT JOIN plt_copy ON ( user_circulation.user_id = plt_copy.USER_ID ) 
                AND ( plt_copy.EMPCODE = staff.work_num ) 
                AND plt_copy.CALL_RESULT = 1 
            WHERE
                plt_copy.ID IS NULL 
            GROUP BY
                user_circulation.user_id 
            ) AS user_circulation 
    )

转载于:https://my.oschina.net/guozhouyuan/blog/2252815

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值