簡體   English   中英

從一個表中提取數據以用於SQL Server的另一查詢中?

[英]Pulling data from one table to use in another query for SQL Server?

我正在學習SQL Server,因此我不太確定搜索這樣的詞的正確條件是什么。

我有兩個表, People (ID,名字,姓氏,工作):

ID   FirstName LastName   Job
 1     Barack    Obama    Null  // Obama is unemployed

Companies (ID,公司名稱,城市,州):

ID   CompanyName           City        State
 1   Legislative Branch    Washington   DC
 2   Executive Branch      Washington   DC
 3   Judicial Branch       Washington   DC

我知道我可以做類似的事情

update Persons 
set Job = '2' 
where ID = 1;

手動執行此操作,但這需要我知道Executive Branch的ID為2。

我將如何編寫一個查詢,在“ Companies表中查找CompanyName == 'Executive Branch' ,然后使用那里的ID

ID   FirstName LastName   Job
----------------------------------
 1     Barack    Obama     2  //Obama now works for the Executive Branch

可能相關,將ID用於這兩個表是否被認為是“錯誤的形式”,還是應該將PersonID和另一個CompanyID

謝謝!

我將如何編寫一個查詢,在“公司”表中查找CompanyName =='US Gov',然后使用那里的ID?

簡單如:

SELECT ID
FROM Companies
WHERE CompanyName = 'US Gov'

添加到您的示例中:

UPDATE People
SET Job = (SELECT ID
           FROM Companies
           WHERE CompanyName = 'US Gov')
WHERE ID IN (id1, id2, id3, ..., idn)

是id1,id2等,您要修改的人的ID。

根據您對帖子的了解,您試圖將job字段更新為另一張表上的相應ID字段。 如果是這樣,您將執行以下操作:

UPDATE People p
SET
   p.job = c.id
FROM
   p
INNER JOIN
   Companies c
ON p.id = c.id
WHERE
   c.id = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM