การอัพเดท 2 table
กระทู้เก่าบอร์ด อ.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 ครั้งถึงจะอัพให้ทุกตัวคับ

อยากรันครั้งเดียวเลยคับ มีวิธีไหมคับ ขอบคุณคับ

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)

เปนแบบนี้คับ
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
   
5 @R03313
มันทำครั้งเดียวจบเลยหรือป่าวคับ หรือว่าจะทำให้ทีละคำสั่งคับ เพราะผมเจอปัญหาที่ว่า จะทำทีละคำสั่ง ไม่ได้รันทีเดียว จบเลย
และก้อถ้า 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
ยังไงล่ะเนี่ย
ถ้า ตัวตั้งยังไม่มี หรือยังไม่พร้อม
ถ้า ตัวคูณ ยังไม่มี หรือยังไม่พร้อม
การคูณ ก็เกิดขึ้นไม่ได้ นั่นหรือเปล่าคือสาเหตุที่ให้มันต้องรันสองครั้ง
ทบทวนใหม่ครับ!
-----------------------------------------------
7 @R03315
ขอบคุณมากคับ ได้แล้วคับ ขอบคุณอาจารย์มากเลยคับ
บอร์ดนี้มีประโยชน์มากมายเลยคับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3222s