INSERT INTO SELECT WHERE,检查重复条目
INSERT INTO SELECT WHERE, checking for duplicated entries
我有一个下面建模的 INSERT INTO SELECT
查询,它可以正常工作。未包括但我想包括的是一种检查 INSERT INTO
数据是否已存在于 wa_research
table 中的方法。
INSERT INTO wa_research C
(field1,
field2,
field3,
field4,
field5,
field6,
field7,
field8,
field9,
field10)
SELECT A.field1,
A.field2,
A.field3,
A.field4,
A.field5,
A.field6,
A.field7,
A.field8,
A.field9,
A.field10
FROM wa_tmp_listed A
LEFT JOIN wa_list B
ON A.field2 = B.field2
WHERE B.field2 IS NULL
我想在插入 wa_research
之前检查并跳过 wa_research
中具有 C.field1
、C.field2
、C.field3
组合的行table.
我想我可以用额外的 JOIN
来做到这一点,所以如果你有建议或例子 and/or 指导我扩展 JOIN
的类型,我期待这样做会有帮助。
您可以在 WHERE
子句中添加条件并将 NOT EXIST
与子查询一起使用:
INSERT INTO wa_research C (field1, field2, field3, field4, field5,
field6, field7, field8, field9, field10)
SELECT A.field1, A.field2, A.field3, A.field4, A.field5,
A.field6, A.field7, A.field8, A.field9, A.field10
FROM wa_tmp_listed A
LEFT JOIN wa_list B ON A.field2 = B.field2
WHERE B.field2 IS NULL
AND NOT EXISTS(SELECT *
FROM wa_research CC
WHERE CC.field1 = A.field1
AND CC.field2 = A.field2
AND CC.field3 = A.field3)
我有一个下面建模的 INSERT INTO SELECT
查询,它可以正常工作。未包括但我想包括的是一种检查 INSERT INTO
数据是否已存在于 wa_research
table 中的方法。
INSERT INTO wa_research C
(field1,
field2,
field3,
field4,
field5,
field6,
field7,
field8,
field9,
field10)
SELECT A.field1,
A.field2,
A.field3,
A.field4,
A.field5,
A.field6,
A.field7,
A.field8,
A.field9,
A.field10
FROM wa_tmp_listed A
LEFT JOIN wa_list B
ON A.field2 = B.field2
WHERE B.field2 IS NULL
我想在插入 wa_research
之前检查并跳过 wa_research
中具有 C.field1
、C.field2
、C.field3
组合的行table.
我想我可以用额外的 JOIN
来做到这一点,所以如果你有建议或例子 and/or 指导我扩展 JOIN
的类型,我期待这样做会有帮助。
您可以在 WHERE
子句中添加条件并将 NOT EXIST
与子查询一起使用:
INSERT INTO wa_research C (field1, field2, field3, field4, field5,
field6, field7, field8, field9, field10)
SELECT A.field1, A.field2, A.field3, A.field4, A.field5,
A.field6, A.field7, A.field8, A.field9, A.field10
FROM wa_tmp_listed A
LEFT JOIN wa_list B ON A.field2 = B.field2
WHERE B.field2 IS NULL
AND NOT EXISTS(SELECT *
FROM wa_research CC
WHERE CC.field1 = A.field1
AND CC.field2 = A.field2
AND CC.field3 = A.field3)