找出另一列的值与哪列相匹配

时间:2016-10-29 15:09:03

标签: mysql sql select

我有以下问题:

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

这将提供以下输出:

enter image description here

我需要知道我的' runk'属于玩家1,2,3或4。 如何找出与runk_user_id匹配的列?

(我知道并非所有的user_id都会匹配,但那是因为我一直在玩我的数据。这在生产版本中不会发生)

1 个答案:

答案 0 :(得分:1)

你必须测试所有这些。您可以使用case表达式以相当优雅的方式完成此任务:

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