答案 0 :(得分:1)
您的数据并未真正正常化。有三个单独的表都提供相同的查找会让你头疼...所以我将3个表组合在一起并创建了一个' 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中的关联记录。但是,内连接也应该有效。
答案 1 :(得分:0)
使用联接应该是可行的。
这些方面应该有效:
SELECT tabelA.ID, tabelA.Subject, tabelA.Date, tabelA.locationType, tabelB.location
FROM tabelA INNER JOIN tabelB on tabelA.locationID = tabelB.locationID