2012-05-09 12 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)で、他の情報が別のテーブルから出力されているときにレコードをテーブルに挿入する方法がありますか?私は、顧客が複製している順序で多くの項目を検索するためにループを作成せずにこれを行うことができると期待しています。

私は過去に私が持っていた他の多くのウェブのdevの質問に素晴らしい回答の無数のを見てきました、私は... stackoverflowのコミュニティがここに私を助けることができる

感謝を願っています!

答えて

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

関連する問題