MySQL
MySQL์ ์ฟผ๋ฆฌ๋ฌธ์ ์คํํ๋ ์ค์ ๋๋ฌด ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฌธ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฑ์ฅํ ์๋ฌ..
์๋๊ฒ ๋ค ์ถ์ด์ ์๋ฌ๋ฅผ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํด์~
1. ์์ธ
MySQL์ 1093์๋ฌ์ ์์ธ์ ๊ฐ๋จํด์ MySQL์ Oracle๊ณผ ๋ฌ๋ฆฌ UPDATE๋ DELETE ์ฟผ๋ฆฌ๋ฌธ์ ์ํํ ๋
์๊ธฐ ์์ ์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ๋์ด ์์ด์ ๊ทธ๋์ 1093์๋ฌ๋ฅผ ์ถ๋ ฅํด์ค์ผ๋ก์จ ๊ทธ๋ ๊ฒ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ์๋ ค์ฃผ๋ ๊ฑฐ์์
DELETE FROM tb_user WHERE id IN (SELECT DISTINCT a.id ext_id FROM tb_user a JOIN tb_user b ON a.user_name = b.user_name JOIN tb_history d ON d.id = a.history_id WHERE a.history_id != b.history_id AND history_name = 'Hello'); | cs |
MySQL Error 1093 : You can't specify target table
ํ์ง๋ง ์ด์ฉ ์ ์์ด ์๊ธฐ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋์ผ๋ ค๊ณ ํด์
๋ฐ๋ก Sub Query๋ฅผ ํ๋ ๋ ๋ฃ์ด์ ์์ ํ ์ด๋ธ์ ๋ง๋ค์ด ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด์์
2. ํด๊ฒฐ
DELETE FROM tb_user WHERE id IN (SELECT ext_id FROM (SELECT DISTINCT a.id ext_id FROM tb_user a JOIN tb_user b ON a.user_name = b.user_name JOIN tb_history d ON d.id = a.history_id WHERE a.history_id != b.history_id AND history_name = 'Hello') tmp); | cs |
MySQL Error 1093 ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค~