[英]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.