MySQL数据库,选择大小写,并获取两个值而不是一个值

标签 mysql sql database

如果我想同时了解 a_player1_name 和 b_player1_name,我该如何修改它?

现在返回第一个找到的值。我的意思是,a_player1_name 或 b_player1_name,但不是两者。两者都是必需的。

当chart_matches.a_player1_id = user_list.id时,a_player1_name应为user_list.player_name。

当chart_matches.b_player1_id = user_list.id时,b_player1_name应该是user_list.player_name。

请帮忙,谢谢。

SELECT case user_list.id
            when chart_matches.a_player1_id
            then user_list.player_name
       end AS a_player1_name

       , case user_list.id
            when chart_matches.b_player1_id
            then user_list.player_name
       end AS b_player1_name

FROM chart_matches
     , all_lists
     , user_list

WHERE chart_matches.chart_id = 106
      AND ((chart_matches.a_team_id = all_lists.id AND chart_matches.a_player1_id = user_list.id)
      OR (chart_matches.b_team_id = all_lists.id AND chart_matches.b_player1_id = user_list.id))

最佳答案

看起来您只是想聚合您的结果(请注意下面版本中的 MAX() 函数)。

您的原始记录将获得 2 条记录 - 每位玩家一条。因此,您必须将记录聚合在一起,并且对于此 MAX() 本质上保留了与特定玩家匹配的记录中的值。

SELECT max(case user_list.id
            when chart_matches.a_player1_id
            then user_list.player_name
            else null
       end) AS a_player1_name

       , max(case user_list.id
            when chart_matches.b_player1_id
            then user_list.player_name
            else null
       end) AS b_player1_name

FROM chart_matches
     , all_lists
     , user_list

WHERE chart_matches.chart_id = 106
      AND chart_matches.a_team_id = all_lists.id
      AND (chart_matches.a_player1_id = user_list.id OR chart_matches.b_player1_id = user_list.id)

关于MySQL数据库,选择大小写,并获取两个值而不是一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069552/

相关文章:

mysql - 提取 hh :mm:ss from TIMESTAMPDIFF (time, Current_Time())

php - 成功更改 apache 服务器的端口后,我的项目没有打开。我可以使用新端口号访问管理面板

sql - SELECT FOR UPDATE 中的数据库死锁

android - 如何用大约 10 个变量在 Android 中保存项目?

database - 每个表中都有地址列或其他表引用的地址表?

php - 什么 mysql 查询可以让我从这个表中按月获得汇总统计信息?

php - 将值从我的 Joomla 模块传递到文章

mysql - 将mysql查询从一个时期扩展到多个时期

sql - ORACLE - 如何创建将在 NLS_COMP=Linguistic 和 NLS_Sort=Binary_CI 时使用的索引

mysql - 更新与删除和插入