我有以下问题:
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
这将提供以下输出:
我需要知道我的' runk'属于玩家1,2,3或4。 如何找出与runk_user_id匹配的列?
(我知道并非所有的user_id都会匹配,但那是因为我一直在玩我的数据。这在生产版本中不会发生)
答案 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