选择选择的结果

Kev*_*vin 9 mysql where-clause

我有一个数据库表,记录游戏中用户的移动.每次他们移动我记录他们的用户ID,move_index(递增每一行)和他们所在区域的id.我有一个特殊的move_index值-1表示该用户的最后一次移动.

id   user_id  move_index  zone_id   
----------------------------------------------------------------
0    11        0          0  
1    11        1          0 
2    11        2          0   
3    11       -1          3    

4    22        0          0   
5    22        1          1   
6    22        2          1    
7    22       -1          3    
Run Code Online (Sandbox Code Playgroud)

我想用sql做两件事:

  • 检测在特定区域中启动和完成的所有用户(例如,在区域0中启动并在区域3中完成)
  • 扩展上述内容,检测在特定区域中启动和完成并通过特定区域的所有用户.

我知道如何使用多个SQL语句和java来执行此操作 - 但我不知道如何在单个SQL语句中执行此操作.我是否需要选择,然后选择此选择的结果?

Joh*_*ker 10

您可以简单地执行SUBQUERY以在"单个"查询中实现此目的.

例如: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

实质上,您使用"内部"SELECT的结果作为"外部"SELECT的工作数据集.