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)が静的であり、他の情報が別のテーブルから出ている場合に、レコードをテーブルに挿入する方法です。顧客が複製している順序でいくら多くのアイテムがあったとしても、クエリを繰り返すループを作成せずにこれを実行できることを望んでいます...それは私たちのサイトを大幅にダウンさせると思います。

私は過去に私が持っていた他の多くのウェブ開発の質問で無数の素晴らしい答えを見てきました、私は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 に答える