亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

刪除MySQL中的JOIN

刪除MySQL中的JOIN

阿波羅的戰車 2019-07-01 16:03:01
刪除MySQL中的JOIN下面是創建我的表的腳本:CREATE TABLE clients (    client_i INT(11),    PRIMARY KEY (client_id));CREATE TABLE projects (    project_id INT(11) UNSIGNED,    client_id INT(11) UNSIGNED,    PRIMARY KEY (project_id));CREATE TABLE posts (    post_id INT(11) UNSIGNED,    project_id INT(11) UNSIGNED,    PRIMARY KEY (post_id));在我的PHP代碼中,當刪除客戶端時,我希望刪除所有的項目帖子:DELETE FROM postsINNER JOIN projects ON projects.project_id = posts.project_idWHERE projects.client_id = :client_id;POST表沒有外鍵。client_id,只有project_id..我想刪除已通過的項目中的帖子。client_id.這是不可行的,因為沒有刪除的帖子。
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您只需指定要從posts表:

DELETE postsFROM postsINNER JOIN projects ON projects.project_id = posts.project_idWHERE projects.client_id = :client_id

編輯:有關更多信息,您可以看到這個替代答案


查看完整回答
反對 回復 2019-07-01
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

由于您正在選擇多個表,因此要從其中刪除的表不再是明確的。你需要選擇:

DELETE posts FROM postsINNER JOIN projects ON projects.project_id = posts.project_idWHERE projects.client_id = :client_id

在這種情況下,table_name1table_name2是同一個表,所以這個表可以:

DELETE projects FROM posts INNER JOIN [...]

如果需要,甚至可以從兩個表中刪除:

DELETE posts, projects FROM posts INNER JOIN [...]

請注意order bylimit 不要使用多表刪除。.

還請注意,如果為表聲明別名,則在引用表時必須使用別名:

DELETE p FROM posts as p INNER JOIN [...]


查看完整回答
反對 回復 2019-07-01
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

或者用稍微不同的語法(更友好的海事組織)來做同樣的事情:

DELETE FROM posts 
USING posts, projects 
WHERE projects.project_id = posts.project_id AND projects.client_id = :client_id;

順便說一句,MySQL使用聯接的速度幾乎總是比子查詢快.


查看完整回答
反對 回復 2019-07-01
  • 3 回答
  • 0 關注
  • 634 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號