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<[email protected]> 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
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users