delete , update with Join statement

สืบเนื่องจากเพื่อนผมไปเจอ Blog การ Update หรือ Delete โดย Join เงื่อนไขจากตารางอื่น มาแล้วเกิืดความสงสัยว่า เอ๋ แล้วมันเป็นคำสั่งมาตรฐานหรือเปล่า ผมก็เลยลองนำมาทดลองใช้กับ MySQL ครับ
Delete

DELETE T1.*,T2.* FROM TEST1 T1 INNER JOIN TEST2 T2 ON T1.ID = T2.ID 

สรุปว่าใน MySQL (Version 5.1) ที่ผมใช้อยู่สามารถใช้งานคำสั่ง Delete แล้วทำการ join ได้ครับ ที่ยังไม่ได้ทดลองก็มี Oracle , MS SQL Server ถ้าทดสอบแล้วจะมา Update
Update

UPDATE T1 SET T.NAME = 'TEST_UPDATE',T2.NAME = 'TEST_UPDATE2' FROM 
TEST1 T1 INNER JOIN TEST2 T2

อันนี้ไม่ Error ก็ลองเปลี่ยนเป็น

UPDATE T1 SET T.NAME = 'TEST_UPDATE' FROM 
TEST1 T1 INNER JOIN TEST2 T2 WHERE T1.ID = 1

และ

UPDATE T1 SET T.NAME = 'TEST_UPDATE',T2.NAME = 'TEST_UPDATE2' FROM 
TEST1 T1 INNER JOIN TEST2 T2

เกิด Error ครับ แสดงว่า MySQL สนับสนุนการ delete แบบ join และไม่สนับสนุนการ update

  1. No comments yet.

  1. No trackbacks yet.