 |
อยากถามเรื่อง insert into select อะคับ คือว่า ผมอยากจะ query ข้อมูล จากหลายๆ ตาราง อะคับแล้วมา insert ให้มาอยู่ในตารางเดียว |
|
 |
|
|
 |
 |
|
คือว่า ผมอยากจะ query ข้อมูล จากหลายๆ ตาราง อะคับ
แล้วมา insert ให้มาอยู่ในตารางเดียว
ไม่ทราบว่ามีวิธีการ หรือ แนวคิด อย่างไรบ้างอะครับ
หรือถ้ามีตัวอย่าง code ด้วยยิ่งดีเรยครับ
นี่เป็นตัวอย่าง code ที่ทำเขียน อ่าคับ แต่ว่าตอนนี้ไม่มันถูกตอ้ง อ่าคับ
ใครใจดีช่วยแก้ ให้หน่อยนะครับ 
$strSQL = "insert into detial1(contract,date_reg,tel_no,m_name,m_type,esn,m_code,phone_num,price,promotion,open_date,cut_date,terminate_date,run_no,billno,billdate,remark)
value (SELECT addr2.contract FROM addr2 WHERE addr2.run_no = ( SELECT max( run_no ) FROM addr2 )),
now(),
(SELECT detail_product.d_remark from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT product.p_name from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT product.p_type from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT detail_product.d_ens from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT product.p_id from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT detail_product.d_remark from detail_product,product WHERE detail_product.d_ens = '$esn'),
(SELECT product.p_price from detail_product,product WHERE detail_product.d_ens = '$esn'),
'$u_promotion',now(),'$cut_dat','$terminate_date','$run_no','$billno','$billdate','$remark' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
2010-04-07 22:34:15 |
By :
nuicpe |
View :
2392 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอมีใจดีอยู่บ้างครับ แต่เห็นแล้วเหนื่อยใจ อภิมหาคิวรี่
มองจากคิวรี่นะ ไม่เห็น db
ยอมทำสามรอบดีกว่า
1. SELECT addr2.contract FROM addr2 WHERE addr2.run_no having max( run_no )
2. SELECT detail_product.d_remark, product.p_name, product.p_type, detail_product.d_ens, product.p_id, product.p_price from detail_product,product WHERE detail_product.d_ens = '$esn'
3. เอาฟิลด์ที่ได้ไป insert แทนการใช้ sub select แบบนั้น คงดีกว่านิดนึง
|
 |
 |
 |
 |
Date :
2010-04-07 23:49:49 |
By :
plakrim |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ
ดูง่ายกว่า จิงๆ ด้วย
จะลองดู นะครับ
|
 |
 |
 |
 |
Date :
2010-04-08 00:14:13 |
By :
nuicpe |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มัน insert ไม่ได้อะคับ มันไม่รู้ตัวแปร ที่จะใช้ insert หรือว่า ยังไงอ่าคับ
ถ้าจะ insert แบบนี้ ต้อง เขียนไง หรอคับ
ช่วยหน่อยนะครับ
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","********") or die("Error Connect to Database");
$objDB = mysql_select_db("cat_cdma");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
$strSQL = "SELECT addr2.contract FROM addr2 where addr2.run_no = (select max(run_no) from addr2) ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL = "SELECT detail_product.d_remark,
product.p_name,
product.p_type,
detail_product.d_ens,
product.p_id,
product.p_price
from detail_product,product
WHERE detail_product.d_ens = '$esn'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL = "INSERT INTO detial1 (contract,date_reg,tel_no,m_name,m_type,esn,m_code,phone_num,price)
VALUES (addr2.contract, now(), detail_product.d_remark, product.p_name, product.p_type, detail_product.d_ens, product.p_id, product.p_price)";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
|
 |
 |
 |
 |
Date :
2010-04-08 14:54:11 |
By :
nuicpe |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่านะครับ
ที่มันไม่มีค่าเก็บลงไปเพราะว่าไม่ได้เก็บค่าลงในตัวแปรอ่ะครับ
พอ query เสร็จแล้ว ก็ให้ mysql_fetch_array หรือ ว่า mysql_fetch_object ก่อนนะครับ
แล้วค่อยนำเอาตัวแปรที่ได้มา insert ลงไปครับ
ประมาณนี้
ลองดูครับ
|
 |
 |
 |
 |
Date :
2010-04-08 15:00:58 |
By :
www |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|