【发布时间】:2021-03-24 13:18:39
【问题描述】:
我要加入 3 张桌子:
SELECT
catalog_product_entity.entity_id AS product_id,
catalog_product_entity.sku,
customer_entity_varchar.entity_id AS customer_id,
customer_entity_varchar.value,
customer_entity_varchar.attribute_id,
import_tmp.customer,
import_tmp.grp,
import_tmp.qty,
import_tmp.price
FROM catalog_product_entity
INNER JOIN import_tmp
ON catalog_product_entity.sku = import_tmp.sku
INNER JOIN customer_entity_varchar
ON import_tmp.customer = customer_entity_varchar.value OR import_tmp.grp = customer_entity_varchar.value
WHERE customer_entity_varchar.attribute_id = 139 OR customer_entity_varchar.attribute_id = 140
目前,我正在获取数据,构建一个新数组并将其插入到我的最终表格中。
INSERT INTO final_table(`c_id`, `p_id`, `price`) VALUES (customer_id, product_id, price);
不过,我想知道是否可以一次性完成,所以基本上直接从临时表中完成?
【问题讨论】:
-
有一个 ANSI SQL 方法,您可以查看stackoverflow.com/questions/25969/… ...不过请注意。确保首先在生产环境之外完成此操作。将所有表的一部分克隆到本地数据库或安全的地方。永远不要在生产环境中直接运行这样的东西。