我对这个查询感到困惑,它使用insert语句然后忽略然后选择。有人可以解释一下吗?感谢
INSERT IGNORE INTO
myTable
SELECT
$var1 AS `CMMNCTID`,
$var2 AS `ENCID`,
variableID,
ProductID,
CustomerID,
Age,
"" AS `myJ`,
"" AS `myI`
FROM
table2
JOIN
table3
ON
table2.ID= table3.ID
答案 0 :(得分:1)
INSERT IGNORE
:如果插入会导致主键或唯一键错误,则应跳过该行。
INSERT ... SELECT
:用于复制另一个表中的数据。
答案 1 :(得分:0)
SELECT
是子查询。 INSERT
正在做的是将table2
和table3
的联接中包含的内容插入myTable
。 IGNORE
告诉它忽略myTable
中已存在的密钥的任何条目,并只插入尚不存在的密钥。
查询的目的似乎是将table2
和table3
之间关联的数据合并,并将其转储到myTable
。
答案 2 :(得分:0)
它从表table2和table3的SELECT
查询得到结果,并将结果插入到表myTable中。 IGNORE
关键字只是告诉mysql忽略执行INSERT查询时发生的任何错误。