2016-09-05 4 views
0

Ich habe 2 Tabellen. Die erste Tabelle speichert die ID in mehreren Spalten, deren Wert in einer anderen Tabelle gespeichert ist. Ich möchte eine Abfrage, die Ergebnis zurückgibt, die Struktur meiner ersten Tabelle aber Werte von der 2. Tabelle hat. Um genauer zu sein sagen wir, ich habe eine Tabelle wie folgt aus:Meine SQL-Abfrage mit mehreren Tabellen

Tabelle A:

 Uniqueid song_1 song_2 song_3 song_4 song_5 
      1  2  4  5  6  8 

Tabelle B:

    song_id song_name 
        1   abcd 
        2   def 
        3   efg 
        4   ghi 
        5   abdal 
        6   nsadln 
        7   knwldn 
        8   jdkabdb 

Ich möchte holen Daten aus Tabelle A, aber es sollte so aussehen:

Gewünschtes Ergebnis:

 Uniqueid song_1 song_2 song_3 song_4 song_5 
      1  def  ghi abdal  nsadln jdkabdb 

Ich habe mitmachen und Objekte bauen, aber bisher kein Glück. Bitte hilf mir.

+0

Nooooooooooooo. Normalisieren Sie Ihr Schema – Strawberry

Antwort

1

Verwenden Sie einfach ein Haufen von links auf Ihre Antwort zu bekommen verbindet:

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 
+0

Arbeitete !! Danke für die Unterstützung.Didnt kann verwenden, um den Spaltennamen zu ändern. –

+0

Sie müssen nicht wirklich setzen, wie Sie nur den Alias ​​setzen können, aber ich dachte, es wäre eine etwas klarere Absicht für Sie. Bitte schön. – Matt

+0

Noch einmal danke.Meine SQL Abfrage wie folgt aussehen: ** Wählen a.Unique_id, b_name als song_1, c_name als song_2, d_name als song_3, e_name als song_4, f_name als song_5, g .sub_name als song_6 aus TabelleA a, TABELLE b, TABELLE b c, TABELLE d, TABELLE b, TABELLE b f, TABELLE b g, wobei b.Song_ID = a.Song_1 und c.Song_ID = a.Song_2 und d.Song_ID = a.Song_3 und e.song_id = a.song_4 und f.song_id = a.song_5 und g.song_id = a.song_6 ** –