yii2 两表联查 使用附表的条件

$extend['joinWith'] = [
                'order' => function ($q) {
                    return $q->select(['SN', 'STATUS', 'DELIVERY_STATUS', 'PERIOD_AT']);
                }
            ];
            $periodLimit = $currentPeriod-$frontDecListDayLimit;
            $deliveryStatusLimit = implode(',', self::filterOrderDeliveryStatus());
            $where .= " AND ((AR_DEC_ORDER.PERIOD_NUM>({$periodLimit})) OR ((AR_ORDER.STATUS >= 1) AND (AR_ORDER.DELIVERY_STATUS IN ({$deliveryStatusLimit}))))";
SELECT "AR_DEC_ORDER"."ID", "AR_DEC_ORDER"."DEC_SN", "AR_DEC_ORDER"."ORDER_SN", "AR_DEC_ORDER"."USER_ID", "AR_DEC_ORDER"."TO_USER_ID", "AR_DEC_ORDER"."TYPE", "AR_DEC_ORDER"."IS_UPGRADE", "AR_DEC_ORDER"."IS_ADMIN", "AR_DEC_ORDER"."DEC_AMOUNT", "AR_DEC_ORDER"."DEC_PV", "AR_DEC_ORDER"."PAID_WALLET", "AR_DEC_ORDER"."PERIOD_NUM", "AR_DEC_ORDER"."IS_DEL", "AR_DEC_ORDER"."IS_TAKE_EFFECT", "AR_DEC_ORDER"."P_CALC_MONTH", "AR_DEC_ORDER"."CREATED_AT", "AR_DEC_ORDER"."TAKE_EFFECT_AT", "AR_DEC_ORDER"."NORMAL_GOODS_AMOUNT", "AR_DEC_ORDER"."SPECIAL_GOODS_AMOUNT", "AR_DEC_ORDER"."AUX_GOODS_AMOUNT", "AR_DEC_ORDER"."TURN_OVER_DEC_PV", "AR_DEC_ORDER"."CALC_MONTH", "AR_DEC_ORDER"."DATA_FLOW_TO_USER_NAME", "AR_DEC_ORDER"."DELETED_AT", "AR_DEC_ORDER"."IS_BATCH", "AR_DEC_ORDER"."DEC_MAIN", "AR_DEC_ORDER"."DEC_MAIN_LV", "AR_DEC_ORDER"."DEC_MAIN_PROVINCE", "AR_DEC_ORDER"."DEC_MAIN_CITY", "AR_DEC_ORDER"."DEC_MAIN_COUNTY", "AR_DEC_ORDER"."PROM_GIVE_AMOUNT", "AR_DEC_ORDER"."REMARK", "AR_DEC_ORDER"."ALLOW_DELETE", "AR_DEC_ORDER"."DELETE_TYPE", "AR_DEC_ORDER"."OLD_TARGET_REAL_NAME", "AR_DEC_ORDER"."UPDATER", "AR_DEC_ORDER"."UPDATED_AT", "AR_DEC_ORDER"."OLD_REC_USER_NAME", "AR_DEC_ORDER"."OLD_REC_REAL_NAME", "AR_DEC_ORDER"."CHANGE_PERIOD_AT", "AR_DEC_ORDER"."CP_DEDUCT_AMOUNT", "AR_DEC_ORDER"."DATA_AMOUNT", "AR_DEC_ORDER"."REC_USER_NAME", "AR_DEC_ORDER"."REC_REAL_NAME", "AR_DEC_ORDER"."CON_USER_NAME", "AR_DEC_ORDER"."CON_REAL_NAME", "AR_DEC_ORDER"."CHANGE_PERIOD_REMARK", "AR_DEC_ORDER"."DATA_PACKAGE" FROM "AR_DEC_ORDER" LEFT JOIN "AR_ORDER" ON "AR_DEC_ORDER"."ORDER_SN" = "AR_ORDER"."SN" WHERE 1=1  AND (AR_DEC_ORDER.USER_ID='670B84FD7C216D4EE055736AECE8644D' OR AR_DEC_ORDER.TO_USER_ID='670B84FD7C216D4EE055736AECE8644D') AND AR_DEC_ORDER.IS_DEL=0 AND ((AR_DEC_ORDER.PERIOD_NUM>(-41)) OR ((AR_ORDER.STATUS >= 1) AND (AR_ORDER.DELIVERY_STATUS IN (30,52,53)))) ORDER BY "CREATED_AT" DESC

SELECT "AR_DEC_ORDER"."ID", "AR_DEC_ORDER"."DEC_SN", "AR_DEC_ORDER"."ORDER_SN", "AR_DEC_ORDER"."USER_ID", "AR_DEC_ORDER"."TO_USER_ID", "AR_DEC_ORDER"."TYPE", "AR_DEC_ORDER"."IS_UPGRADE", "AR_DEC_ORDER"."IS_ADMIN", "AR_DEC_ORDER"."DEC_AMOUNT", "AR_DEC_ORDER"."DEC_PV", "AR_DEC_ORDER"."PAID_WALLET", "AR_DEC_ORDER"."PERIOD_NUM", "AR_DEC_ORDER"."IS_DEL", "AR_DEC_ORDER"."IS_TAKE_EFFECT", "AR_DEC_ORDER"."P_CALC_MONTH", "AR_DEC_ORDER"."CREATED_AT", "AR_DEC_ORDER"."TAKE_EFFECT_AT", "AR_DEC_ORDER"."NORMAL_GOODS_AMOUNT", "AR_DEC_ORDER"."SPECIAL_GOODS_AMOUNT", "AR_DEC_ORDER"."AUX_GOODS_AMOUNT", "AR_DEC_ORDER"."TURN_OVER_DEC_PV", "AR_DEC_ORDER"."CALC_MONTH", "AR_DEC_ORDER"."DATA_FLOW_TO_USER_NAME", "AR_DEC_ORDER"."DELETED_AT", "AR_DEC_ORDER"."IS_BATCH", "AR_DEC_ORDER"."DEC_MAIN", "AR_DEC_ORDER"."DEC_MAIN_LV", "AR_DEC_ORDER"."DEC_MAIN_PROVINCE", "AR_DEC_ORDER"."DEC_MAIN_CITY", "AR_DEC_ORDER"."DEC_MAIN_COUNTY", "AR_DEC_ORDER"."PROM_GIVE_AMOUNT", "AR_DEC_ORDER"."REMARK", "AR_DEC_ORDER"."ALLOW_DELETE", "AR_DEC_ORDER"."DELETE_TYPE", "AR_DEC_ORDER"."OLD_TARGET_REAL_NAME", "AR_DEC_ORDER"."UPDATER", "AR_DEC_ORDER"."UPDATED_AT", "AR_DEC_ORDER"."OLD_REC_USER_NAME", "AR_DEC_ORDER"."OLD_REC_REAL_NAME", "AR_DEC_ORDER"."CHANGE_PERIOD_AT", "AR_DEC_ORDER"."CP_DEDUCT_AMOUNT", "AR_DEC_ORDER"."DATA_AMOUNT", "AR_DEC_ORDER"."REC_USER_NAME", "AR_DEC_ORDER"."REC_REAL_NAME", "AR_DEC_ORDER"."CON_USER_NAME", "AR_DEC_ORDER"."CON_REAL_NAME", "AR_DEC_ORDER"."CHANGE_PERIOD_REMARK", "AR_DEC_ORDER"."DATA_PACKAGE" FROM "AR_DEC_ORDER" LEFT JOIN "AR_ORDER" ON "AR_DEC_ORDER"."ORDER_SN" = "AR_ORDER"."SN" WHERE 1=1  AND (AR_DEC_ORDER.USER_ID='670B84FD7C216D4EE055736AECE8644D' OR AR_DEC_ORDER.TO_USER_ID='670B84FD7C216D4EE055736AECE8644D') AND AR_DEC_ORDER.IS_DEL=0 AND ((AR_DEC_ORDER.PERIOD_NUM>(-41)) OR ((AR_ORDER.STATUS >= 1) AND (AR_ORDER.DELIVERY_STATUS IN (30,52,53)))) ORDER BY "CREATED_AT" DESC

原文地址:https://www.cnblogs.com/arvin-an/p/11175087.html