簡體   English   中英

根據SQL Server中的列值從不同的表中選擇值

[英]Select value from different tables based on the column value in SQL Server

我有一個包含以下字段的主表A:

在此處輸入圖片說明

然后我有三個單獨的表,每個表分別用於建築物,教室和辦公室。 所有這些表都有兩列。 ID和名稱。

我想查詢表A以獲取以下結果:

在此處輸入圖片說明

我怎樣才能做到這一點?

您的數據並未真正標准化。 擁有三個單獨的表並且都服務於相同的查找使您有些頭疼...因此,我將這三個表聯合在一起並創建了一個“ src”列,以便您可以將表A的類型和ID聯接回表B的ID和src。 最好有一張桌子和非重復ID和類型ID來指定它是建築物教室還是辦公室。

Select * 
from A
LEFT JOIN (SELECT 'Building' as src, ID, Name FROM Buildings UNION ALL
           SELECT 'Classroom' as src, ID, Name FROM Classrooms UNION ALL
           SELECT 'Office' as src, ID, Name FROM Offices) B
on A.Location_Type = B.Src
and A.LocationID = B.ID

如果不是A中的所有記錄在B中都有關聯的記錄,我在這里使用了左聯接。但是,內部聯接也應該起作用。

應該可以與聯接一起使用。

遵循這些原則應該可以:

SELECT tabelA.ID, tabelA.Subject, tabelA.Date, tabelA.locationType, tabelB.location
FROM tabelA INNER JOIN tabelB on tabelA.locationID = tabelB.locationID

暫無
暫無

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

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