使用情况历史表与更新表
当历史表中的某条数据需要更新的时候,该数据需要添加到更新表中,那么我们就需要先查询出这条数据
再插入到更新表中,
下面就是举例,我拿自己的两张没啥用的表。
这是表1 ,表名为jct_collateral
框出来的部分是待会需要插入的数据
表二名jct_collateral_user
我们可以看到的是,两张表中的部分字段相同,那么我们就插入相同字段的值,如果没有的话,那么我们就添加,这边有一种是绑死的添加。
下面就是sql语句了。
INSERT INTO jct_collateral_use (
jct_collateral_use.collateral_id,
jct_collateral_use.user_id,
jct_collateral_use.vin,
jct_collateral_use.collateral_amount,
jct_collateral_use.collateral_number,
jct_collateral_use.out_refund_no,
jct_collateral_use.withdraw_state,
jct_collateral_use.return_time)
SELECT
jct_collateral.collateral_id,
jct_collateral.user_id,
jct_collateral.vin,
jct_collateral.collateral_amount,
jct_collateral.collateral_number,
jct_collateral.out_refund_no,
1,
jct_collateral.return_time
FROM jct_collateral
where
jct_collateral.state=0
这里我设置的条件是collateral 的state
就是这一列的值,如果是0的,那么就会插入到另一张表中
我们来看看结果
下面已经插入两条
为什么withdraw_state的值变成了1呢???
首先插入的字段数和查询的字段数相等
如果插入的没有相同字段可以取别名,取别名应该不用我说的,
后面的话,我对应的withdraw_state字段我在select里面写了1,就直接插入到表中withdraw_state的值就是1.我这是条件需要,你们不需要的也不用写。
那么插入查询的公式是怎么样子的呢
insert into 表1
(字段A,字段B,字段C)
select
字段A,字段B,字段C
from 表2
where 条件 and 表1 . id = 表 2 . id // 这个是两个表的主键确定两表数据的唯一性,只能有一条数据
表的字段数量一定要相等,要不然就是出出错。
okkk
完毕了
睡觉