Mysql中多表刪除


1、從MySQL數據表A中把那些id值在數據表B里有匹配的記錄全刪除掉

  DELETE t2 FROM A t1,B t2 WHERE t1.id = t2.id

  DELETE FROM t2 USING A t1,B t2 WHERE t1.id = t2.id

  

  【USING 的用法:

    using()用於兩張表的join查詢,要求using()指定的列在兩個表中均存在,並使用之用於join的條件。

    例如:SELECT * FROM A t1 LEFT JOIN B t2 USING(id)

       等同於:SELECT * FROM At1 LEFT JOIN B t2 ON t1.id = t2.Id

  】

 

2、 從MySQL數據表A里在數據表B里沒有匹配的記錄查找出來並刪除掉

  DELETE t1 FROM A t1 LEFT JOIN B t2 ON t1.id = t2.id WHERE t2.id IS NULL

  DELETE FROM t1 USING At1 LEFT JOIN B t2 ON t1.id = t2.id WHERE t2.id IS NULL

    【被刪除數據的表選擇如上】

3、從兩個表中找出相同記錄的數據並把兩個表中的數據都刪除掉

  DELETE t1,t2 FROM A t1 LEFT JOIN B t2 ON t1.Id = t2.id where t1.Id = 2      【適用Mysql 5.0以上版本】

  【加WHERE條件則刪除滿足WHERE條件的兩個表數據。

    不加WHERE,則基表數據會全部被刪除,連接表中和基表相同的數據全部被刪除】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM