程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql 多表關聯更新/刪除sql語句

mysql 多表關聯更新/刪除sql語句

編輯:MySQL綜合教程

在mysql中關聯刪除與關聯更新我們會使用到update與delete來實現,下面我來給大家舉例介紹mysql 多表關聯更新/刪除sql語句,希望此方法對你有幫助。

1、mysql 多表關聯delete中使用別名,tblwenhq是真實的表名,a是tblwenhq的別名,b是另一個表名

 代碼如下 復制代碼

DELETE  a FROM tblwenhq a,b where a.id=b.id

2、使用mysql進行delete from操作時,若子查詢的 FROM 字句和更新/刪除對象使用同一張表,會出現錯誤。

DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 );

ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause

正確用法:DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 as a);

表關聯Update筆記

 代碼如下 復制代碼

UPDATE b,a SET b.public=a.public WHERE b.id=a.id

對單表執行更新沒有什麼好說的,無非就是update table_name set col1 = xx,col2 = yy where col = zz,主要就是where條件的設置。有時候更新某個表可能會涉及到多張數據表,例如:

 代碼如下 復制代碼

update table_1 set score = score + 5 where uid in (select uid from table_2 where sid = 10);

其實update也可以用到left join、inner join來進行關聯,可能執行效率更高,把上面的sql替換成
join的方式如下:

 代碼如下 復制代碼

update table_1 t1 inner join table_2 t2 on t1.uid = t2.uid set score = score + 5 where t2.sid = 10;


例1

MySQL多表關聯數據同時刪除

category(欄目信息表)和news(新聞數據表)。

category中的id(欄目編號)字段作為該表的主鍵(primary key).唯一標識了一個欄目的信息。
news 中的id字段作為該表的主鍵(primary key).唯一標識了一個欄目的信息。

category_id(欄目編號)字段與category表的id字段相關聯。

1.SQL刪除語句

 代碼如下 復制代碼

delete category,news from category left join news on category.id = news.category_id

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved