希望我能正确解释这个问题。这对我来说都是新的。
我有两个表,我正在尝试从中获取数据。一个是 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,我希望有人可以告诉我我在这里缺少什么(我确信这是一个简单的修复)。当它是一列到一列时,我已经能够使它工作,但是当我试图让它从一列到三列时它没有用。
谢谢!
答案 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