我有一张桌子,我希望插入旧日期的新值,但只插入唯一的日期。
t1
ID | Block | Flats |
1 | 1 | GF-1 |
2 | 1 | GF-2 |
3 | 2 | GF-1 |
4 | 2 | GF-2 |
5 | 2 | GF-2 |
这是我的表格的一部分,包含我希望它在复制后变成的一些样本数据
ID | Block | Flats |
1 | 1 | GF-1 |
2 | 1 | GF-2 |
3 | 2 | GF-1 |
4 | 2 | GF-2 |
5 | 2 | GF-2 |
6 | 1 | GF-1 |
7 | 1 | GF-2 |
8 | 2 | GF-1 |
9 | 2 | GF-2 |
复制之后它只复制了不同的值,而GF-2只复制了一次。 但是当我尝试
时insert into t1 (ID,Block,Flats) select distinct Block,Flats from t1
它在第2块中复制GF-2两次。
注意:ID列会自动递增1。
答案 0 :(得分:2)
您可以使用 $.ajax({
url: ../..,
cache: false,
type: "POST",
data: JSON.stringify({objRoot: TotalTime}) ,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (response) {
},
error: function (er) {
console.log(er);
}
});
生成所有行,然后清除已存在的行:
cross join
注意:这假设insert into t1(block, flats)
select b.block, f.flats
from (select distinct block from t1) b cross join
(select distinct flats from t1) f left join
t1
on t1.block = b.block and t1.flats = f.flats
where t1.block is null;
是id
列(我看到你已经说明了这种情况)。