我有2张桌子。第一个表将id存储在多个列中,其值存储在其他表中。我想要一个返回结果的查询,该结果具有我的第一个表的结构,但是来自第二个表的值。更具体地说,我有一个这样的表:
表A :
Uniqueid song_1 song_2 song_3 song_4 song_5
1 2 4 5 6 8
表B :
song_id song_name
1 abcd
2 def
3 efg
4 ghi
5 abdal
6 nsadln
7 knwldn
8 jdkabdb
我想从表A中获取数据,但它应该如下所示:
期望的结果:
Uniqueid song_1 song_2 song_3 song_4 song_5
1 def ghi abdal nsadln jdkabdb
到目前为止,我已经使用了连接和制作对象但没有运气。请帮帮我。
答案 0 :(得分:1)
只需使用一堆左连接即可得到答案:
SELECT
a.UniqueId
,s1.song_name as song_1
,s2.song_name as song_2
,s3.song_name as song_3
,s4.song_name as song_4
,s5.song_name as song_5
FROM
TableA a
LEFT JOIN TableB s1
ON a.song_1 = s1.song_id
LEFT JOIN TableB s2
ON a.song_2 = s2.song_id
LEFT JOIN TableB s3
ON a.song_3 = s3.song_id
LEFT JOIN TableB s4
ON a.song_4 = s4.song_id
LEFT JOIN TableB s5
ON a.song_5 = s5.song_id