2012-05-09 32 views
2

我想从一个表“虹吸”数据到另一个表。我碰到的问题是,新表中的一些数据是静态的,其他数据正在从现有表中复制。让我从显示我试图运行的查询开始:MySQL:INSERT INTO与静态和动态值混合

INSERT INTO current_cart 
    (cart_ID, 
    cart_PO, 
    cart_user, 
    cart_date, 
    cart_qty, 
    cart_sku, 
    cart_description, 
    cart_price, 
    cart_linetotal) 
VALUES 
    ('$cartID', 
    '$poNumberNew', 
    '$email', 
    '$lineDate', 
SELECT 
    orderdetail_qty, 
    orderdetail_sku, 
    orderdetail_description, 
    orderdetail_price, 
    orderdetail_linetotal 
FROM orderdetail 
WHERE orderdetail_custemail = $email AND orderdetail_po = $poNumber) 

很明显,所有的PHP变量都是事先声明的。基本上我所运行的是一个购物车。该查询将从先前的订单中获取物品并将其输入到新的购物车中,以便我们的客户可以根据先前的订单开始新订单。

我碰到的问题是当记录的某些数据是静态的(cartID,poNumberNew,email和lineDate)和其他信息来自不同的表格时,如何将记录插入表中?我希望我可以做到这一点,而无需创建一个循环来重复查询,无论客户重复的订单数量是多少......我认为这会让我们的网站显着陷入困境。

我见过真棒答案无数的其他许多网站开发的问题,我已经在过去,我希望在计算器社区能帮助我在这里...

谢谢!

回答

2

在SELECT语句中,您可以有一个返回常量的列。例如,

INSERT INTO current_cart 
    (cart_ID, 
    cart_PO, 
    cart_user, 
    cart_date, 
    cart_qty, 
    cart_sku, 
    cart_description, 
    cart_price, 
    cart_linetotal) 

SELECT 
    '$cartID', 
    '$poNumberNew', 
    '$email', 
    '$lineDate', 
    orderdetail_qty, 
    orderdetail_sku, 
    orderdetail_description, 
    orderdetail_price, 
    orderdetail_linetotal 
FROM orderdetail 
WHERE orderdetail_custemail = $email AND orderdetail_po = $poNumber) 
+0

哇......太简单了......这么有效!谢谢,TheVedge! – BelgianAlien

+0

随时!它也适用于插入,删除,更新以及任何你通常拥有列名的地方。 – ESG