select on results of a select

У меня есть таблица базы данных, в которой записываются перемещения пользователей в игре . Каждый раз, когда они перемещаются, я записываю их идентификатор пользователя, move_index (увеличивает каждую строку) и идентификатор зоны, в которой они находятся. У меня есть специальное значение 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    

Я хочу для выполнения двух действий с sql:

  • Обнаружение всех пользователей, которые начали и закончили в определенных зонах (например, начали в зоне 0 и закончили в зоне 3)
  • Расширяя вышеперечисленное, обнаруживайте всех пользователей, которые начали и заканчивали в определенных зонах И прошел через определенную зону.

Я знаю, как это сделать с помощью нескольких операторов SQL & java, но я не знаю, как это сделать с помощью одного оператора SQL. Нужно ли мне делать выбор, а затем выбор по результатам этого выбора?

9
задан yoozer8 4 June 2012 в 15:21
поделиться