I've been looking everywhere and can't find anything like this. I have two tables, table one t1 has 12 entries for each a1 value, b1 values are static for all a1 except one entry. neither a1 or b1 are primary key. t1 also has other static columns for all a1.
table two t2 has a2 and the b2 value that is not static. neither a2 nor b2 are primary keys (I use independent id columns for primary keys).
my goal is to import all a2 values that do not exist in t1. keep in mind table 1 has ~2 million entries currently, and table 2 will generally have 150K-1M entries.
this works:
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 )
but it only enters one a2 entry into t1, leaving 11 missing entries.
This is my idea:
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 )
Is something like this possible? (This obviously doesn't work, major syntax errors).
SAMPLE DATA FROM ACTUAL TABLE:
+---------+------+-------------+-------------+--------------+
| 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)
In my example table, a1=destination, b1=durationRate, c1=name, d1=application
There 12 different rate decks defined by name.