6

うまくいけば、これが正しく説明されます。これは私にとってすべて新しいことです。

データを取得しようとしているテーブルが 2 つあります。1 つはdbo.geographicで、 map_idmap_nameの 2 つの列があります。これら 2 つの列には、データの国、州、および都市のレベルが含まれています。

もう 1 つのテーブルはdbo.ordersです。私が興味を持っている列は、country_idstate_id、およびcity_idです。これらの列には、dbo.geographicテーブルからの対応する番号が含まれています。

dbo.orderテーブルから国、州、都市の値を取得し、dbo.geographic のmap_name列から正しい文字列に置き換えるクエリを実行しようとしています。私が言ったように、私は SQL をいじるのが初めてで、誰かがここで何が欠けているか教えてくれることを望んでいました (私はそれが簡単な修正だと確信しています)。1列から1列の場合はこれを機能させることができましたが、1列から3列にしようとすると機能しませんでした。

ありがとう!

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異なるエイリアスで 3 回結合し、ordersテーブルの適切な列をmap_id

于 2013-06-10T19:57:09.130 に答える