我一直在到处寻找,找不到这样的东西。我有两个表,表一个每个值t1
有12 个条目,除一个条目外,所有值都是静态的。既不是主键也不是主键。也有其他所有的静态列。a1
b1
a1
a1
b1
t1
a1
表二t2
有a2
且b2
值不是静态的。主键也不a2
是b2
(我使用独立的 id 列作为主键)。
我的目标是导入所有a2
不存在于t1
. 请记住,表 1 目前有大约 200 万个条目,而表 2 通常会有 150K-1M 条目。
这有效:
INSERT t1 ( a1, b1, c1, d1 )
SELECT a2, b2, 'constant1', 'constant2'
FROM t2 AS V2
WHERE NOT EXISTS ( SELECT 1 FROM t1 WHERE a1=V2.a2 )
但它只输入一个a2
条目t1
,留下11 个缺失条目。
这是我的想法:
SELECT a2, b2 FROM t2 AS V2
INSERT INTO t1 ( a1, b1, c1, d1 )
VALUES ( V2.a2, V2.b2, 'constant1', 'constant2' ),
( V2.a2, 'constant3', 'constant1', 'constant2'),
( V2.a2, 'constant4', 'constant1', 'constant2'),
( V2.a2, 'constant5', 'constant1', 'constant2'),
( V2.a2, 'constant6', 'constant1', 'constant2'),
( V2.a2, 'constant7', 'constant1', 'constant2'),
( V2.a2, 'constant8', 'constant1', 'constant2'),
( V2.a2, 'constant9', 'constant1', 'constant2'),
( V2.a2, 'constant10', 'constant1', 'constant2'),
( V2.a2, 'constant11', 'constant1', 'constant2'),
( V2.a2, 'constant12', 'constant1', 'constant2'),
( V2.a2, 'constant13', 'constant1', 'constant2')
WHERE NOT EXISTS ( SELECT 1 FROM t1 WHERE a1=V2.a2 )
这样的事情可能吗?(这显然不起作用,主要的语法错误)。
来自实际表格的样本数据:
+---------+------+-------------+-------------+--------------+
| id | name | destination | application | durationRate |
+---------+------+-------------+-------------+--------------+
| 45013 | 1 | 1305200 | audio | 0 |
| 335203 | 2 | 1305200 | audio | 0.014 |
| 625393 | 3 | 1305200 | audio | 0.005928 |
| 956657 | 4 | 1305200 | audio | 0 |
| 1251735 | 5 | 1305200 | audio | 0 |
| 1560365 | 6 | 1305200 | audio | 0.02 |
| 1868995 | 7 | 1305200 | audio | 0.014 |
| 2200259 | 9 | 1305200 | audio | 0.014 |
| 2517971 | 10 | 1305200 | audio | 0.018 |
| 2813049 | 11 | 1305200 | audio | 0.018 |
| 3121679 | 12 | 1305200 | audio | 0.00775 |
| 3430309 | 8 | 1305200 | audio | 0 |
| 45015 | 1 | 1305201 | audio | 0 |
| 335205 | 2 | 1305201 | audio | 0.014 |
| 625395 | 3 | 1305201 | audio | 0.006552 |
| 956659 | 4 | 1305201 | audio | 0 |
| 1251737 | 5 | 1305201 | audio | 0 |
| 1560367 | 6 | 1305201 | audio | 0.02 |
| 1868997 | 7 | 1305201 | audio | 0.014 |
| 2200261 | 9 | 1305201 | audio | 0.014 |
| 2517973 | 10 | 1305201 | audio | 0.018 |
| 2813051 | 11 | 1305201 | audio | 0.018 |
| 3121681 | 12 | 1305201 | audio | 0.00775 |
| 3430311 | 8 | 1305201 | audio | 0 |
| 45017 | 1 | 1305202 | audio | 0 |
| 335207 | 2 | 1305202 | audio | 0.014 |
| 625397 | 3 | 1305202 | audio | 0.00468 |
| 956661 | 4 | 1305202 | audio | 0 |
| 1251739 | 5 | 1305202 | audio | 0 |
| 1560369 | 6 | 1305202 | audio | 0.02 |
| 1868999 | 7 | 1305202 | audio | 0.014 |
| 2200263 | 9 | 1305202 | audio | 0.014 |
| 2517975 | 10 | 1305202 | audio | 0.018 |
| 2813053 | 11 | 1305202 | audio | 0.018 |
| 3121683 | 12 | 1305202 | audio | 0.00775 |
| 3430313 | 8 | 1305202 | audio | 0 |
+---------+------+-------------+-------------+--------------+
36 rows in set (0.00 sec)
在我的示例表中,a1
= destination
, b1
= durationRate
, c1
= name
, d1
=application
定义了 12 种不同的汇率牌组name
。