Try this:

select c.*
   from players a, registrations b, players c
 where a.device_id = b.device_id
    and b.mesg_token='123456'
    and a.table_group_id = c.table_group_id
    and a.table_id = c.table_id


Pavel

On Tue, Jun 16, 2009 at 11:25 AM, Boris Ioffe<bioff...@yahoo.com> wrote:
>
> Hello folks,
> I am having trouble understanding one very important concept about IN 
> operator. Let me show you my situation below.
>
> sqlite> select sqlite_version();
> sqlite_version()
> ----------------
> 3.3.6
> *********************************************************
> Here is my table schema
>
> CREATE TABLE players
>        (device_id varchar(40) NOT NULL, table_group_id integer, table_id 
> integer,
>         role integer, create_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
>
>         FOREIGN KEY (table_id,table_group_id) REFERENCES tables(id, group_id),
>         FOREIGN KEY (device_id) REFERENCES users(device_id),
>         PRIMARY KEY (device_id, table_group_id, table_id));
>
>
>
> *********************************************************************
> select  table_group_id , table_id  from players join registrations on 
> players.device_id = registrations.device_id  where mesg_token='123456';
>
> table_group_id  table_id
> --------------  ----------
> 1               1
> 1               2
>
> Now I need to select all players who happened to be playing at the same table 
>  (table_id,table_group_id) REFERENCES tables(id, group_id).
>
>
> Obviously something like that doesn't work:
>
> select * from players where (table_group_id,table_id) in (select  
> table_group_id , table_id  from players join registrations on 
> players.device_id = registrations.device_id  where mesg_token='123456')
>
> -It would work only with ONE field.
>
> select * from players where table_group_id in (select  table_group_id from 
> players join registrations on players.device_id = registrations.device_id  
> where mesg_token='123456') and table_group_id in (select table_id ...)
>
> it is not quite the same as it will not match the pair.
> Same puzzles me with self join route. I hate to mindlessly  traverse all 
> pairs using code, rather having one transaction.
>
> I appreciate any help and suggestions.
> Thanks,
> -B
>
>
>
>
>
>
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to