订单表
CREATE TABLE `order` (
`id` bigint(22) NOT NULL AUTO_INCREMENT COMMENT '主键',
`order_no` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=151103 DEFAULT CHARSET=utf8mb4 COMMENT='订单信息表 ';
任务表
CREATE TABLE `order_collection_task_replace` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`order_id` int(11) DEFAULT NULL COMMENT '订单id',
`collection_task_status` int(1) DEFAULT NULL COMMENT '催收任务状态 0 待处理 1 待跟进 2 已完成 3失效',
PRIMARY KEY (`id`) USING BTREE,
KEY `order_id` (`order_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=41997 DEFAULT CHARSET=utf8mb4 COMMENT='订单任务表-新';
没有分配的单子包括order_collection_task_replace不存在的和任务失效的
select
from order_info o
left join order_collection_task_replace t
on o.id = t.order_id and t.collection_task_status != 3
where
t.id is null
左結合では、両者の違いは次のとおりです:
on は一時テーブルの生成時に使用される条件
、 は一時テーブルの生成後に使用される条件 この時点では、左結合が使用されるかどうかは関係ありません。条件が true でない限り OK