我的SQL查询涉及多个表

时间:2016-09-05 19:08:26

标签: mysql sql

我有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

到目前为止,我已经使用了连接和制作对象但没有运气。请帮帮我。

1 个答案:

答案 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