第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL DELETE FROM以子查詢?yōu)闂l件

MySQL DELETE FROM以子查詢?yōu)闂l件

墨色風雨 2019-12-18 16:44:24
我試圖做這樣的查詢:DELETE FROM term_hierarchy AS thWHERE th.parent = 1015 AND th.tid IN (    SELECT DISTINCT(th1.tid)    FROM term_hierarchy AS th1    INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)    WHERE th1.parent = 1015);您可能會說,如果相同的提示還有其他父母,我想刪除1015的父母關(guān)系。但是,這產(chǎn)生了一個語法錯誤:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS thWHERE th.parent = 1015 AND th.tid IN (  SELECT DISTINCT(th1.tid)  FROM ter' at line 1我已經(jīng)檢查了文檔,并獨自運行了子查詢,這一切似乎都已結(jié)束。任何人都可以找出這里有什么問題嗎?更新:如以下回答所示,MySQL不允許在子查詢中使用該條件刪除要刪除的表。
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

您無法指定要刪除的目標表。


解決方法


create table term_hierarchy_backup (tid int(10)); <- check data type


insert into term_hierarchy_backup 

SELECT DISTINCT(th1.tid)

FROM term_hierarchy AS th1

INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)

WHERE th1.parent = 1015;


DELETE FROM term_hierarchy AS th

WHERE th.parent = 1015 AND th.tid IN (select tid from term_hierarchy_backup);


查看完整回答
反對 回復(fù) 2019-12-18
?
拉風的咖菲貓

TA貢獻1995條經(jīng)驗 獲得超2個贊

對于其他發(fā)現(xiàn)此問題并希望在使用子查詢時刪除的問題,我將這個示例留給您,以取代MySQL(即使有些人似乎認為無法做到):


DELETE e.*

FROM tableE e

WHERE id IN (SELECT id

             FROM tableE

             WHERE arg = 1 AND foo = 'bar');

會給你一個錯誤:


ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause

但是這個查詢:


DELETE e.*

FROM tableE e

WHERE id IN (SELECT id

             FROM (SELECT id

                   FROM tableE

                   WHERE arg = 1 AND foo = 'bar') x);

會很好地工作:


Query OK, 1 row affected (3.91 sec)

將子查詢包裝在另一個子查詢(這里稱為x)中,MySQL會很樂意完成您的要求。


查看完整回答
反對 回復(fù) 2019-12-18
?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

別名應(yīng)包含在DELETE關(guān)鍵字之后:


DELETE th

FROM term_hierarchy AS th

WHERE th.parent = 1015 AND th.tid IN 

(

    SELECT DISTINCT(th1.tid)

    FROM term_hierarchy AS th1

    INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)

    WHERE th1.parent = 1015

);


查看完整回答
反對 回復(fù) 2019-12-18
  • 3 回答
  • 0 關(guān)注
  • 1503 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號