0

私はこのようなテーブルuser_tableを持っています:

user_table

user1, user2
123    122 
323    323
122    125 

また、ユーザーを郵便番号にマップする別のテーブルがあります。

user_zip

user zipcode
123    32456
323    12983
121    90878
... 

次に、次のようなテーブルを作成します。

user1, user2, user1_zip, user2_zip 

次のクエリから次のようなテーブルを取得できることがわかります。

select user1, user2, zipcode as user1_zip 
    from user_table as a inner join user_zip as b
    on a.user1 = b.user; 

user2もマップする方法がわからず、user2_zipという列をもう1つ取得します。

あなたの助けに感謝します。

4

3 に答える 3

3

これを試して

SELECT ut.user1, uz1.zipcode AS zip1, ut.user2, uz2.zipcode AS zip2
FROM user_table AS ut
JOIN user_zip AS uz1 ON ut.user1 = uz1.user
JOIN user_zip AS uz2 ON ut.user2 = uz2.user
于 2013-03-14T20:55:38.950 に答える
1

同じテーブルに複数回参加できます。

select u.user1, u.user2, z1.zipcode [user1_zip], z2.zipcode [user2_zip]
from user_table u
join user_zip z1 on z1.user=u.user1
join user_zip z2 on z2.user=u.user2
于 2013-03-14T20:54:22.947 に答える
0

私はこのようなことをします:

with temp as (
select user1 u
from user_table
union
select user2 u
from user_table
)

select u.*, uz.*
from temp
inner join user_zip uz on
temp.u = uz.user
于 2013-03-14T20:55:23.193 に答える