我想直接從一個MySQL表中的值複製到另一個...但麻煩的是,有許多行復制,這樣子選擇語句將返回多行,但帕拉姆:order_id
只是寫一次。直接在MySQL中將多個行從一個表複製到另一個表?
考慮這個問題,我有麻煩搞清楚如何寫這個過程:
# 1: Create new Order & Copy the cart basket to the Order basket
$order_id = addOrder($customer_id);
if ($order_id > -1) {
$sql = "INSERT INTO tbl_order_basket(order_id, product_id, product_name,
basket_qty, basket_price, subtotal)
VALUES (:order_id, (SELECT (cart.product_id, product.name,
cart.cart_qty, cart.cart_price, cart.subtotal)
FROM tbl_shopping_cart AS cart
INNER JOIN tbl_product AS product
ON cart.product_id = product.id
WHERE cart.php_sesskey = :session_id)
)
WHERE order_id=:order_id;";
}
這裏是我試圖複製數據:
ORDER BASKET CART BASKET PRODUCTS
FK order_id FK php_sesskey
FK product_id <-- FK product_id === PK id
product_name <-- <-- name
basket_qty <-- cart_qty
basket_price <-- cart_price # <-- : copy to
subtotal <-- subtotal # === : join on
我應該如何去關於這樣做?
注:我使用PHP 5和MySQL 5.5
我想我做到了嗎?但問題是,如何將參數':order_id'插入每行? – Ozzy 2012-04-23 13:55:08
像'選擇:ORDER_ID AS ORDER_ID,*'應該工作 – 2012-04-23 13:55:47
好了,所以我刪除了'values'詞,改成了這樣:'INSERT INTO TBL(ID,COL1,COL2)(SELECT,tbl2.col1, tbl2.col2 FROM ...)'應該工作正確嗎?其實我想我應該使用':namedParam'這次,因爲程序不會知道'''需要插入多少次? – Ozzy 2012-04-23 14:05:35