MySql 从表格游戏中找到玩家 X 的 friend

标签 mysql sql logic

1) 我需要:“找到玩 Player '55' 相同游戏且游戏 ID 大于 2 的所有玩家”

表格如下图所示:

enter image description here

我尝试了很多语句,但它们产生了错误的结果:

SELECT Games.id, Players.id from Games, Players 
WHERE Players.id='55' and Games.id > 2;

2) 此外,如果我说我需要选择与以前相同的选项,您会怎么做,其中“游戏的 ID 仅是降序排列的最后 2 个”(即只有具有 id 的游戏在这种情况下为 3 和 4,但对于其他情况可能有所不同)。我只能想到将 Games.id 与用户输入的数字进行比较,但你们中的一些人可能知道另一种方式......

有人可以帮帮我吗?谢谢!

编辑:

1) SELECT b.id_player, b.id_game FROM Players a, Players b WHERE a.id_player = '55' AND b.id_game = a.id_game AND b.id_player <> '55' AND a.id_game > 2;

2) 选项 1 适用于问题 1,但问题 2 需要一个 TOP 子句,这对我不起作用。

如何使用 LIMIT 或 TOP 实现与 a.id_game > 2 相同的效果?我只想要最后 2 个 ID_GAME 的结果,在本例中是 id=3 和 id=4...

编辑: 没关系,我有第一个问题。我只会将 LIMIT 设置为固定数字。感谢您的帮助

最佳答案

您需要一个自连接。我现在也无法测试这个 - 稍后会做一个 SQL fiddle ,但它应该是这样的:

SELECT b.id_player, b.id_game 
FROM Players a, 
     Players b 
WHERE a.id_player = '55' 
AND   b.id_game   = a.id_game 
AND   b.id_player <> '55' 
AND   a.id_game > 2
order by b.id_game
limit 2;

关于MySql 从表格游戏中找到玩家 X 的 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736140/

相关文章:

sql - 如何在 PostgreSQL 中两次显示今天的日期

android - 数据库驱动应用程序中的 OOP 建模对象?

c - 使用按位运算符查找是否每个偶数位都设置为 0

mysql - 玩 2.3 scala - Slick 与 MYSQL 问题

MySQL 返回 null 和其他一些问题

mysql - 从 SQL 转储还原数据库时启用二进制模式

mysql - 在选择时插入 0 以表示空返回(在任务计划程序上运行的 SQL 脚本)

sql - 使用 sql 数据创建模型

php - 使用 PHP mysqli_query 的单个 SELECT 查询的隔离级别

C# 逻辑顺序和编译器行为