3

我正在尝试将数据从一张表“虹吸”到另一张表。我遇到的问题是新表中的一些数据是静态的,其他数据是从现有表中复制的。让我从显示我试图运行的查询开始:

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)并且其他信息来自不同的表时,如何将记录插入表中?我希望我可以在不创建循环重复查询的情况下做到这一点,无论客户复制的顺序中有多少项目......我认为这会严重阻碍我们的网站。

我在过去遇到的许多其他 Web 开发问题上看到了无数很棒的答案,我希望 stackoverflow 社区可以在这里帮助我......

谢谢!

4

1 回答 1

3

在 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)
于 2012-05-09T20:25:16.133 回答