You need to use some type of INSERT...SELECT
query.
Update (after clarification): For example, here is how to insert a row in t2
if a corresponding row do not already exist in t1
:
INSERT INTO t2 (v)
SELECT temp.candidate
FROM (SELECT 'test' AS candidate) temp
LEFT JOIN t1 ON t1.v = temp.candidate
WHERE t1.v IS NULL
To insert multiple rows with the same query, I 'm afraid there is nothing better than
INSERT INTO t2 (v)
SELECT temp.candidate
FROM (
SELECT 'test1' AS candidate
UNION SELECT 'test2'
UNION SELECT 'test3' -- etc
) temp
LEFT JOIN t1 ON t1.v = temp.candidate
WHERE t1.v IS NULL
Original answer
For example, this will take other_column
from all rows from table1
that satisfy the WHERE
clause and insert rows into table2
with the values used as column_name
. It will ignore duplicate key errors.
INSERT IGNORE INTO table2 (column_name)
SELECT table1.other_column
FROM table1 WHERE table1.something == 'filter';
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…