MySQL 加入 + "WHERE something=MAX(something)"

标签 mysql join left-join

我有几个表需要连接。这些表是:

玩家

  • 名字
  • 姓氏
  • 性别
  • location_id
  • (其他不相关的列)

score_entries

  • 得分
  • 日期时间
  • 玩家编号
  • (其他不相关的列)

我需要根据 player_id 加入他们,并且只想选择 players.location_id 最大的记录。所以像这样:

SELECT
players.first_name,
players.last_name,
players.gender,
score_entries.score,
score_entries.datetime as jump_date
players.location_id,
FROM score_entries
LEFT JOIN players
ON score_entries.player_id = players.id
WHERE gender="m"
AND location_id="***(ONLY THE HIGHEST LOCATION_ID VALUE IN THE TABLE)***"

最佳答案

请尝试以下查询

SELECT 
    players.first_name, 
    players.last_name, 
    players.gender, 
    score_entries.score, 
    score_entries.datetime as jump_date, 
    players.location_id
FROM score_entries 
LEFT JOIN players 
ON score_entries.player_id = players.id 
WHERE gender="m" 
AND players.location_id = (SELECT MAX(location_id) from players)

关于MySQL 加入 + "WHERE something=MAX(something)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166631/

相关文章:

sql-server - 我怎样才能加快多个左外连接,

php - MySQL : SELECT all USERS With 2 messages open and clicked after timestamp

mysql - 如何处理为多个用户存储多个值?

python - 在 Django 中,如何将具有复合主键的表连接到另一个表?

具有多个连接和条件的 Mysql 查询

sql - 查询与自身连接的表

mysql - 将包含 LEFT OUTER JOIN 的 SELECT 语句调整为同一表中的 UPDATE 语句 - 可能吗?

mysql - 使用 JSON 解码 Laravel 检索特定数据

PHP MySQL 生成多个 xml 站点地图索引

MySQL 查询 - 连接一张表中不同数量的行