6

希望我已经正确解释了这一点。这对我来说是全新的。

我有两个表,我试图从中获取数据。一是dbo.geographic有两列,map_idmap_name。这两列包含国家、州和城市级别的数据。

另一个表是dbo.orders。我感兴趣的列是country_idstate_idcity_id。这些列仅具有来自dbo.geographic表的相应编号。

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

谢谢!

4

1 回答 1

12

尝试这样的事情:

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不同的别名连接三次,将表中的相应列ordersmap_id

于 2013-06-10T19:57:09.130 回答