เราไม่สามารถ subquery ตารางเดียวกันได้เหรอ

เช่น

INSERT INTO balance (bal_date,bal_cost) VALUE

('2010-09-25' ,(SELECT bal_cost AS last FROM balance WHERE MONTH(bal_date)='09' ORDER BY bal_id DESC LIMIT 1))

มันโชว์ error ว่า



#1093 - You can't specify target table 'balance' for update in FROM clause



 เราเลยลองเปลี่ยนเป็น



INSERT INTO balance (bal_date,bal_cost) VALUE

('2010-09-25' ,(SELECT bg_cost AS last FROM budget WHERE MONTH(bg_date)='09' ORDER BY bg_id DESC LIMIT 1))



insert ได้ปกติ



##ตาราง balance และ budget โครงสร้างเดียวกันทุกอย่าง


กรกฎ วิริยะ 24 Sep 2010 06:37
ได้ครับโดยการกำหนดตารางทั้ง 2 เป็นชื่ออื่นที่ไม่ตรงกัน



INSERT INTO balance (bal_date,bal_cost) VALUE

('2010-09-25' ,(SELECT b2.bal_cost AS last FROM balance AS b2 WHERE MONTH(b2.bal_date)='09' ORDER BY b2.bal_id DESC LIMIT 1))

E_tabra 24 Sep 2010 10:48


ขอบคุณจ้าา