聯表查詢的更新,聯表更新

來源:互聯網
上載者:User

聯表查詢的更新,聯表更新

背景:

     之前寫過一篇關於資料庫聯表查詢的部落格《再看資料庫——(6)串連》,主要講了串連的類型,以及如何使用串連進行多表查詢。本篇部落格就是在這基礎上延伸而來的。首先,我們先來看一個聯表查詢的例子。

USE TestUnion--員工集合CREATE TABLE StaffUnion(ID INT PRIMARY KEY,NAME VARCHAR(10) NOT NULL,comment VARCHAR(30),remark INT)--員工表CREATE TABLE Staff(ID INT PRIMARY KEY,PersonNAME VARCHAR(10) NOT NULL,StaffUnionID INT,comment VARCHAR(30),remark INT)--工作計劃表CREATE TABLE StaffPlan(ID INT PRIMARY KEY,StaffID INT ,PlanName VARCHAR(10) NOT NULL,PlanContent VARCHAR(60),remark INT)


註:三個表中沒有添加外鍵約束,考慮到插入刪除資料的方便。


插入幾條簡單的資料:

INSERT INTO staffUnion VALUES (1,'test1','員工集合一',1);INSERT INTO staffUnion VALUES (2,'test2','員工集合二',1);INSERT INTO staffUnion VALUES (3,'test3','員工集合三',1);INSERT INTO Staff VALUES (1,'張三',1,'無',1);INSERT INTO Staff VALUES (2,'李四',1,'無',1);INSERT INTO Staff VALUES (3,'王五',2,'無',1);INSERT INTO Staff VALUES (4,'李明',2,'無',1);INSERT INTO StaffPlan VALUES(1,1,'編製計劃','結合年度資訊,編製計劃',1);INSERT INTO StaffPlan VALUES(2,1,'搭建環境','搭建環境,計劃五個小時',1);INSERT INTO StaffPlan VALUES(3,1,'編製計劃','結合年度資訊,編製計劃',0);

要求:

將員工集合一種的張三對應的編製計劃改為融資計劃,並且是有效資料,即remark=1。

相應的SQL語句為:

UPDATE StaffPlan SET StaffPlan.PlanName='融資計劃' FROM StaffUnion INNER JOIN Staff ON Staff.StaffUnionID=StaffUnion.IDINNER JOIN StaffPlan ON StaffPlan.StaffID=Staff.ID WHERE StaffPlan.ID=1AND StaffPlan.remark=1


結果顯示:

StaffPlan表


如果不使用這種方法,那麼我們先進行聯表查詢。

SELECT staffPlan.ID,staffPlan.PlanName,staffPlan.PlanContent,StaffPlan.remark FROM staffPlan INNER JOIN staff ON Staff.ID=StaffPlan.StaffIDINNER JOIN StaffUnion ON staffUnion.ID=Staff.StaffUnionID WHERE staffPlan.planname='編製計劃'AND StaffPlan.remark='1'


查到這條資料後,再進行更新。

UPDATE staffplan SET staffplan.planname='融資計劃' WHERE staffPlan.planname='編製計劃'AND StaffPlan.remark='1'

對比分析:

      使用連表查詢再更新需要兩個sql語句來完成,而且當資料量比較大的時候,很容易出錯。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.