กระทู้เก่าบอร์ด อ.Yeadram
1,344 7
URL.หัวข้อ /
URL
การอัพเดท 2 table
ตัวอย่างโค๊ดนะคับ
UPDATE tbl_a INNER JOIN tbl_b
ON tbl_a.p_id = tbl_b.p_id
SET tbl_b.p_price = tbl_a.p_price
เมื่อผมใส่ค่าที่จะ set ต่ออีกคือ ,tbl_b.p_qty = tbl_a.p_qty,tbl_b.p_total = (tbl_b.p_price*tbl_a.p_qty)
แบบนี้คับ แต่ผลรันออกมาคือ มันจะอัพเดท price และ qty ใน tbl b
แต่ไม่คำนวณตรง tbl_b.p_total = (tbl_b.p_price*tbl_a.p_qty) ต่อเลยคับ
จะอัพเดทต่อไป เมื่อรันอีกครั้ง คับ พูด่ายๆคือต้องรัน 2 ครั้งถึงจะอัพให้ทุกตัวคับ
อยากรันครั้งเดียวเลยคับ มีวิธีไหมคับ ขอบคุณคับ
UPDATE tbl_a INNER JOIN tbl_b
ON tbl_a.p_id = tbl_b.p_id
SET tbl_b.p_price = tbl_a.p_price
เมื่อผมใส่ค่าที่จะ set ต่ออีกคือ ,tbl_b.p_qty = tbl_a.p_qty,tbl_b.p_total = (tbl_b.p_price*tbl_a.p_qty)
แบบนี้คับ แต่ผลรันออกมาคือ มันจะอัพเดท price และ qty ใน tbl b
แต่ไม่คำนวณตรง tbl_b.p_total = (tbl_b.p_price*tbl_a.p_qty) ต่อเลยคับ
จะอัพเดทต่อไป เมื่อรันอีกครั้ง คับ พูด่ายๆคือต้องรัน 2 ครั้งถึงจะอัพให้ทุกตัวคับ
อยากรันครั้งเดียวเลยคับ มีวิธีไหมคับ ขอบคุณคับ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R03307
tbl_b.p_total = (tbl_a.p_price * tbl_a.p_qty)
2 @R03310
มันคืออะไรเหรอคับ ..?
3 @R03311
อ๋อ ขอโทษด้วยคับ ผมเขียนผิด จิงๆแล้วคือ
tbl_b.p_total = (tbl_b.p_price*tbl_b.p_qty)
เปนแบบนี้คับ
tbl_b.p_total = (tbl_b.p_price*tbl_b.p_qty)
เปนแบบนี้คับ
4 @R03312
UPDATE tbl_a INNER JOIN tbl_b
ON tbl_a.p_id = tbl_b.p_id
SET
tbl_b.p_price = tbl_a.p_price,
tbl_b.p_qty = tbl_a.p_qty,
tbl_b.p_total = (tbl_a.p_price*tbl_a.p_qty);
b = a
b = a
b = a * a
ON tbl_a.p_id = tbl_b.p_id
SET
tbl_b.p_price = tbl_a.p_price,
tbl_b.p_qty = tbl_a.p_qty,
tbl_b.p_total = (tbl_a.p_price*tbl_a.p_qty);
b = a
b = a
b = a * a
5 @R03313
มันทำครั้งเดียวจบเลยหรือป่าวคับ หรือว่าจะทำให้ทีละคำสั่งคับ เพราะผมเจอปัญหาที่ว่า จะทำทีละคำสั่ง ไม่ได้รันทีเดียว จบเลย
และก้อถ้า tbla ไม่มี ฟิวด์ qty แล้วผมใช้ tbl_b.p_price*tbl_b.p_qty ผลลัพธ์ที่ได้จะเหมือนกันไหมคับ
และก้อถ้า tbla ไม่มี ฟิวด์ qty แล้วผมใช้ tbl_b.p_price*tbl_b.p_qty ผลลัพธ์ที่ได้จะเหมือนกันไหมคับ
6 @R03314
tbl_b.p_price มันยังไม่มีค่า หรือ ยังเป็นค่าเก่าอยู่ อย่าใช้มัน ผลลัพภ์ อาจจะ ไม่เหมือนกัน และถ้า มันยังไม่มีค่า มันก็ไม่สามารถทำงานให้จบในครั้งเดียวได้
ใช้ a ครับ
tbl_b.p_total = (tbl_a.p_price*tbl_b.p_qty);
-----------------------------------------------
"ถ้า a ไม่มี qty" แล้วในตัวอย่าง จากคำถามของคุณ ไปเอาค่ามาจากไหนล่ะครับ
เห็นสั่ง เซ็ทค่า b.qty = a.qty
ยังไงล่ะเนี่ย
ถ้า ตัวตั้งยังไม่มี หรือยังไม่พร้อม
ถ้า ตัวคูณ ยังไม่มี หรือยังไม่พร้อม
การคูณ ก็เกิดขึ้นไม่ได้ นั่นหรือเปล่าคือสาเหตุที่ให้มันต้องรันสองครั้ง
ทบทวนใหม่ครับ!
-----------------------------------------------
ใช้ a ครับ
tbl_b.p_total = (tbl_a.p_price*tbl_b.p_qty);
-----------------------------------------------
"ถ้า a ไม่มี qty" แล้วในตัวอย่าง จากคำถามของคุณ ไปเอาค่ามาจากไหนล่ะครับ
เห็นสั่ง เซ็ทค่า b.qty = a.qty
ยังไงล่ะเนี่ย
ถ้า ตัวตั้งยังไม่มี หรือยังไม่พร้อม
ถ้า ตัวคูณ ยังไม่มี หรือยังไม่พร้อม
การคูณ ก็เกิดขึ้นไม่ได้ นั่นหรือเปล่าคือสาเหตุที่ให้มันต้องรันสองครั้ง
ทบทวนใหม่ครับ!
-----------------------------------------------
7 @R03315
ขอบคุณมากคับ ได้แล้วคับ ขอบคุณอาจารย์มากเลยคับ
บอร์ดนี้มีประโยชน์มากมายเลยคับ
บอร์ดนี้มีประโยชน์มากมายเลยคับ
Time: 0.3222s