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

聯表查詢的更新

編輯:SyBase教程

聯表查詢的更新


背景:

之前寫過一篇關於數據庫聯表查詢的博客《再看數據庫——(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.ID
INNER JOIN StaffPlan ON StaffPlan.StaffID=Staff.ID WHERE StaffPlan.ID=1
AND StaffPlan.remark=1

結果顯示:

StaffPlan表
\

如果不使用這種方法,那麼我們先進行聯表查詢。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:sql;">SELECT staffPlan.ID,staffPlan.PlanName,staffPlan.PlanContent,StaffPlan.remark FROM staffPlan INNER JOIN staff ON Staff.ID=StaffPlan.StaffID INNER 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語句來完成,而且當數據量比較大的時候,很容易出錯。

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