MySQL 查询 - Select 来自两个表的语句,通过返回具有最大 ID 的记录进行分组
MySQL query - Select statement from two tables with group by returning records with largest ids
我真的需要你的帮助,我已经花了很多时间试图弄清楚但没有成功:(
我有两个表:
我需要的是按 sea_id / bat_season 对所有内容进行分组,并获得这些季节的最佳 ID。所以 bat_id 的 3 和 5 应该连同它们的链接数据一起返回。
但是如果 Table 2 中没有数据,我仍然应该看到没有 Table 2 细节的两个季节的细节。
我最接近的结果如下:
SELECT b.bat_id, b.bat_trophies, b.bat_ranking, s.sea_id, s.sea_name, s.sea_start
FROM gvg_seasons s
LEFT JOIN (SELECT bat_id, bat_trophies, bat_ranking, bat_season FROM gvg_battles ORDER BY bat_id DESC LIMIT 1) b
ON s.sea_id = b.bat_season
WHERE s.sea_gl_id = 1
GROUP BY s.sea_id DESC
结果:
Result
如果有人可以帮助我,我将不胜感激。
我没有试过这个,因为我不喜欢从你的图像中转录 table 数据,但它应该提供你正在寻找的结果。
最里面的子查询每个 bat_season 获得最大值(bat_id)。这是加入回 gvg_battles 以提供每个赛季的最新战斗。
SELECT *
FROM gvg_seasons s
LEFT JOIN (
SELECT b1.*
FROM gvg_battles b1
JOIN (
SELECT bat_season, MAX(bat_id) AS max_bat_id
FROM gvg_battles
GROUP BY bat_season
) b_max ON b1.bat_id = b_max.max_bat_id
) b2 ON s.sea_id = b2.bat_season;
我真的需要你的帮助,我已经花了很多时间试图弄清楚但没有成功:(
我有两个表:
我需要的是按 sea_id / bat_season 对所有内容进行分组,并获得这些季节的最佳 ID。所以 bat_id 的 3 和 5 应该连同它们的链接数据一起返回。 但是如果 Table 2 中没有数据,我仍然应该看到没有 Table 2 细节的两个季节的细节。
我最接近的结果如下:
SELECT b.bat_id, b.bat_trophies, b.bat_ranking, s.sea_id, s.sea_name, s.sea_start
FROM gvg_seasons s
LEFT JOIN (SELECT bat_id, bat_trophies, bat_ranking, bat_season FROM gvg_battles ORDER BY bat_id DESC LIMIT 1) b
ON s.sea_id = b.bat_season
WHERE s.sea_gl_id = 1
GROUP BY s.sea_id DESC
结果: Result
如果有人可以帮助我,我将不胜感激。
我没有试过这个,因为我不喜欢从你的图像中转录 table 数据,但它应该提供你正在寻找的结果。
最里面的子查询每个 bat_season 获得最大值(bat_id)。这是加入回 gvg_battles 以提供每个赛季的最新战斗。
SELECT *
FROM gvg_seasons s
LEFT JOIN (
SELECT b1.*
FROM gvg_battles b1
JOIN (
SELECT bat_season, MAX(bat_id) AS max_bat_id
FROM gvg_battles
GROUP BY bat_season
) b_max ON b1.bat_id = b_max.max_bat_id
) b2 ON s.sea_id = b2.bat_season;