当前位置: 首页 > 知识库问答 >
问题:

是否将值从临时表导入到另一个表?

寇坚成
2023-03-14

我加入了三张桌子:

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);

但是,我想知道是否可以一气呵成,所以基本上直接从临时表?

共有2个答案

斜浩穰
2023-03-14
INSERT INTO final_table(`c_id`, `p_id`, `price`) 

SELECT 
customer_entity_varchar.entity_id AS customer_id,
catalog_product_entity.entity_id AS product_id,
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

上面的代码可以做到这一点。只需选择要插入到final_table中的行。

吕向荣
2023-03-14

是的。使用插入。..选择:

INSERT INTO final_table (c_id, p_i`, price)
    SELECT cev.entity_id AS customer_id,
           cpe.entity_id AS product_id,
           it.price
    FROM catalog_product_entity cpe JOIN
         import_tmp it
         ON cpe.sku = it.sku JOIN
         customer_entity_varchar cev
         ON cev.value IN (it.customer, it.grp)
    WHERE cev.attribute_id IN (139, 140);

注意,我引入了表别名。这使得查询更容易写入和读取。而且中的比重复的条件更容易遵循。

 类似资料:
  • 我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!

  • 问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改

  • 问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。

  • 问题内容: 如何将上面插入语句中填充的标识值()插入表(另一个表)中 任何人都可以解释一下如何对更大的记录集(成千上万条记录)实施此操作吗? 我们可以使用loop和吗?如果是这样,请说明我们该怎么做? 如果我从选择查询中插入#test,会发生什么情况? 插入#test(b,c)中,从…中选择…(成千上万条记录) 我将如何捕获身份值并将该值用于另一个(#sample)插入#sample(e,f)插入

  • 问题内容: 我试图将数据从一个表插入到另一个表,这是我收到的错误消息: 错误:将INERT插入到content2(d1,d2,d3)值(John,Doo,24); 错误:在字段列表中插入未知列’John’错误:INSERT INTO content2(d1,d2,d3)VALUES(Mary,Moe,36); ‘字段列表’中的未知列’Mary’错误:INSERT INTO content2(d1,

  • 我正在使用开发一个应用程序,我必须创建一个历史表,基本上我只是从主表复制旧记录,并在主表记录更新或删除时插入历史表。我在创建了一个类型为时间戳的字段,没有时区。当我使用select query从主表中选择行时,我会在=处创建