2016-10-29 5 views
1

Ich habe die folgende Abfrage:Finden Sie heraus, mit welcher Spalte der Wert einer anderen Spalte entspricht

SELECT g.group_player1_user_id, g.group_player2_user_id, g.group_player3_user_id, g.group_player4_user_id, r.runk_user_id 
FROM groups g 
JOIN runks r 
ON g.group_id = r.runk_group_id 

Dies wird die folgende Ausgabe geben:

enter image description here

ich wissen müssen, wenn 'runk' gehört zu den Spielern 1, 2, 3 oder 4. Wie finde ich heraus, welche Spalte mit meiner runk_user_id übereinstimmt?

(ich bin mir bewusst, nicht alle benutzerkennungen wird passen, aber das ist, weil ich habe um meine Daten zu spielen. Dies wird nicht in der Serienversion passieren)

Antwort

1

Sie werden alle diese testen. Sie können dies in einer ziemlich eleganten Weise mit einem case Ausdruck erreichen:

SELECT r.runk_user_id, 
     CASE r.runk_user_id WHEN g.group_player1_user_id THEN 'player 1' 
          WHEN g.group_player2_user_id THEN 'player 2' 
          WHEN g.group_player3_user_id THEN 'player 3' 
          WHEN g.group_player4_user_id THEN 'player 4' 
          ELSE 'no player matches' 
     END AS player 
FROM groups g 
JOIN runks r ON g.group_id = r.runk_group_id 
Verwandte Themen