On 10-12-10 12:43, Kees Nuyt wrote:
> On Fri, 10 Dec 2010 02:53:32 -0800 (PST), lucavb
> <bombhere...@gmail.com>  wrote:
>
>> Hello,
>> i need to to do this:
>>
>> i have this table: "userrates", composed by: id, userid, idtitle, rate.
>>
>> for example:
>> (1, 12, 1, 3)
>> (2, 15, 99, 4)
>> (3, 22, 10, 1)
>> (10, 22, 1, 5)
>> (5, 166, 37, 1)
>> (4, 244, 10, 2)
>> (6, 298, 1, 4)
>> (7, 298, 10, 3)
>> (8, 298, 15, 2)
>>
>> i need to extract only the rows with the userid
>> who had voted both fims (1 and 10):
>>
>> the result will be:
>> (3, 22, 10, 1)
>> (10, 22, 1, 5)
>> (6, 298, 1, 4)
>> (7, 298, 10, 3)
>>
>> How can i do that?
>>
> Assuming you mean idtitle where you write "fims":
>
> SELECT a.id, a.userid, a.idtitle, a.rate
>    FROM userrates AS a
>    INNER JOIN (
>       SELECT userid
>         FROM userrates
>      WHERE idtitle IN (1,10)
>      GROUP BY userid
>      HAVING count(id) = 2
>       ) AS b ON b.userid = a.userid
>   WHERE a.idtitle IN (1,10)
> ORDER BY a.userid,a.id;

A user who has rated movie 1 twice
and has not rated movie 10,
would show up in your result..

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to