[請益] mysql 指令格式問題
想請教版上的大大
以下這段指令是以直覺的方式撰寫出來
但是卻無法再mysql上執行
delete from TABLE
where a1 in
(
select a1
from TABLE
where a2 = 123
)
錯誤訊息:
(You can't specify target table 'TABLE' for update in FROM clause )
這是一個很奇怪的語法問題 (= = 明明構想上沒有錯)
想請教版上大大是否有比較好的解決方案?
<方案一>
有大大提到, a1是必需的嗎?
讓我重新思考table的schema
首先...這個語法的功能是用來將同一群組的資料全部刪除掉
a2在這裡的角色是當作"所有人的編號"
a1在這裡的角色是當作"群組編號"
但是只知道a2的值
(由底下成員a2來引出a1這個群組編號, 再由群組編號來刪除掉整個群組)
所以說解決方案一就是把a1跟a2分離成兩個table
這樣就不會有重複查詢同一個table的語法問題
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.39.218
推
08/24 02:12, , 1F
08/24 02:12, 1F
→
08/24 04:24, , 2F
08/24 04:24, 2F
→
08/24 04:50, , 3F
08/24 04:50, 3F
推
08/24 12:44, , 4F
08/24 12:44, 4F
※ 編輯: knme 來自: 140.116.39.218 (08/24 16:15)
推
08/24 19:06, , 5F
08/24 19:06, 5F
→
08/24 21:44, , 6F
08/24 21:44, 6F
→
08/24 21:45, , 7F
08/24 21:45, 7F
推
08/25 10:01, , 8F
08/25 10:01, 8F
→
08/25 10:02, , 9F
08/25 10:02, 9F
→
08/25 21:52, , 10F
08/25 21:52, 10F
→
08/25 21:54, , 11F
08/25 21:54, 11F