我有两个表,分别是 TEMPDATA 和 Product。我将我的所有数据从 csv 提要转储到 TEMPDATA,然后将其组织到相应的表中,Product 就是其中之一。
我正在尝试将 TEMPDATA 中没有重复“ean”编号的所有内容插入到产品中,前提是它在产品中尚不存在。
我正在尝试使用的查询如下...
INSERT IGNORE INTO `Product` (`product_ean`, `product_name`, `product_description`, `product_image`, `product_thumbnail`, `product_category`)
SELECT `ean`, `product_name`, `description`, `merchant_image_url`, `aw_thumb_url`, `merchant_category`
FROM (
SELECT `ean`, `product_name`, `description`, `merchant_image_url`, `aw_thumb_url`, `merchant_category`, count( * )
FROM TEMPDATA
GROUP BY `ean`
HAVING count( * ) = 1
) AS t
WHERE NOT EXISTS (
SELECT `product_ean` FROM Product
)
除了我包含“WHERE NOT EXISTS”子句之外,所有单独的部分似乎都有效,有人可以帮我吗?
试试这个:
INSERT IGNORE INTO Product (product_ean, product_name, product_description, product_image, product_thumbnail, product_category)
SELECT ean, product_name, description, merchant_image_url, aw_thumb_url, merchant_category
FROM (
SELECT ean, product_name, description, merchant_image_url, aw_thumb_url, merchant_category, count( * )
FROM TEMPDATA
GROUP BY ean
HAVING count( * ) = 1
) AS t
WHERE NOT EXISTS (
SELECT product_ean FROM Product AS A WHERE A.product_ean = t.product_name
)
你错过了这个:
WHERE A.product_ean = t.product_name
在 NOT EXIST 语句中
我是一名优秀的程序员,十分优秀!