MS SQL - 使用另一个表中的值替换查询中的ID值

时间:2013-06-10 19:52:10

标签: sql-server

希望我能正确解释这个问题。这对我来说都是新的。

我有两个表,我正在尝试从中获取数据。一个是 dbo.geographic ,它有两列, map_id map_name 。这两列包含数据的国家/地区,州和城市级别。

另一张表是 dbo.orders 。我感兴趣的列是 country_id state_id city_id 。这些列只有 dbo.geographic 表中的相应数字。

我正在尝试运行一个查询,该查询从 dbo.order 表中获取 country,state和city 值,并用中的正确字符串替换它们> map_name dbo.geographic列。就像我说的那样,我不熟悉SQL,我希望有人可以告诉我我在这里缺少什么(我确信这是一个简单的修复)。当它是一列到一列时,我已经能够使它工作,但是当我试图让它从一列到三列时它没有用。

谢谢!

1 个答案:

答案 0 :(得分:7)

尝试这样的事情:

SELECT country.map_name, state.map_name, city.map_name, orders.other_columns
FROM orders
JOIN geographic AS country ON country.map_id = orders.country_id
JOIN geographic AS state ON state.map_id = orders.state_id
JOIN geographic AS city ON city.map_id = orders.city_id

基本上,您使用geographic三次加入,使用不同的别名,将orders表格中的相应列与map_id

相匹配