Thanks Michael - my test table has a lot of data in it - I need (tomorrow -
its 11pm here) to create subset of my test data and have a play.

thanks


On 30 January 2013 22:47, Michael Black <mdblac...@yahoo.com> wrote:

> You need to start showing your testing....a .dump of your tables might help
> plus show what you execute in the shell.
> This works just fine and appears to produce what you want.
> I don't know what you want #1 in your 1st question as the hash matches #0
> which is what you said you want to exclude.
>
> SQLite version 3.7.14.1 2012-10-04 19:37:12
> Enter ".help" for instructions
> Enter SQL statements terminated with a ";"
> sqlite> create table files(file,setid,hash);
> sqlite> insert into files
> values('file1',0,'8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279');
> sqlite> insert into files
> values('file1',1,'8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279');
> sqlite> insert into files
> values('file1',2,'8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279');
> sqlite> insert into files
> values('file1',3,'B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5');
> sqlite> insert into files
> values('file1',4,'0546-4667-5A69-6478-FC97-6F27-840D-7D62');
> sqlite> insert into files
> values('file1',5,'0546-4667-5A69-6478-FC97-6F27-840D-7D62');
> sqlite> insert into files
> values('file1',6,'0546-4667-5A69-6478-FC97-6F27-840D-7D62');
> sqlite> insert into files
> values('file1',7,'01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29');
> sqlite> insert into files
> values('file1',8,'01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29');
> sqlite> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> setid=0);
> file1|3|B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> file1|4|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|5|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|6|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|7|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1|8|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> sqlite> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> setid=0) group by hash;
> file1|8|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1|6|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|3|B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> sqlite> delete from files where setid=0;
> sqlite> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> setid=0);
> file1|1|8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1|2|8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1|3|B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> file1|4|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|5|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|6|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|7|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1|8|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> sqlite> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> setid=0) group by hash;
> file1|8|01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1|6|0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1|2|8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1|3|B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
>
> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org
> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Paul Sanderson
> Sent: Wednesday, January 30, 2013 4:33 PM
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] SQL query
>
> Thanks - replace set with setid - query is the same (it was badly
> simplified sorry)
>
> Another real world example using the sql query
>
> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> setid=0);
>
> file1 0    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 1    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 2    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 3    B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> file1 4    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 5    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 6    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 7    01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1 8    01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
>
> I get an empty data set again, what I want is something like this
>
> file1 1    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 3    B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> file1 6    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 8    01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
>
>
> also there could be instances where  there is no setid=0 row, as below, in
> this case I would want the same dataset as returned above
>
> file1 1    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 2    8465-CEEF-126A-0F04-1EDC-1D7B-331F-9279
> file1 3    B2F9-B5D4-A427-9FE2-9724-BF95-1571-7CE5
> file1 4    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 5    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 6    0546-4667-5A69-6478-FC97-6F27-840D-7D62
> file1 7    01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
> file1 8    01EE-7E2E-2242-E734-B125-D02F-A7F0-DC29
>
>
>
> On 30 January 2013 22:14, Michael Black <mdblac...@yahoo.com> wrote:
>
> > 'set' is a reserved word.  I get an error running your select statement.
> >
> > Change it.
> >
> >
> > SQLite version 3.7.14.1 2012-10-04 19:37:12
> > Enter ".help" for instructions
> > Enter SQL statements terminated with a ";"
> > sqlite> create table files(file,setid,hash);
> > sqlite> insert into files
> > values('1.jpg',0,'5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D');
> > sqlite> insert into files
> > values('1.jpg',1,'5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D');
> > sqlite> insert into files
> > values('1.jpg',2,'5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D');
> > sqlite> insert into files
> > values('1.jpg',3,'5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D');
> > sqlite> insert into files
> > values('1.jpg',4,'890B-4533-447E-6461-070E-FDB7-799E-1FB8');
> > sqlite> SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files
> WHERE
> > setid=0);
> > 1.jpg|4|890B-4533-447E-6461-070E-FDB7-799E-1FB8
> >
> >
> > -----Original Message-----
> > From: sqlite-users-boun...@sqlite.org
> > [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Paul Sanderson
> > Sent: Wednesday, January 30, 2013 4:05 PM
> > To: General Discussion of SQLite Database
> > Subject: Re: [sqlite] SQL query
> >
> > I have a test set with the following real data
> >
> > 1.jpg    0    5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D
> > 1.jpg    1    5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D
> > 1.jpg    2    5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D
> > 1.jpg    3    5DA4-CD3A-62DE-2F9D-4BD7-6E24-EACE-936D
> > 1.jpg    4    890B-4533-447E-6461-070E-FDB7-799E-1FB8
> >
> > SELECT * FROM files WHERE hash NOT IN (SELECT hash FROM files WHERE
> set=0)
> >
> > returns an empty data set, but should return the item from set 4
> >
> > The following does work
> >
> > select * from files where set > 0 and not exists (select * from files a
> > where hash=files.hash and set=0);
> >
> > which is great and solves my problem, but I cant see why the first query
> > doesn't work.
> >
> >
> > On 30 January 2013 21:37, Paul Sanderson
> > <sandersonforens...@gmail.com>wrote:
> >
> > >
> > > Thanks All - duplicated means the content is the same as well as the
> > name,
> > > different is the filename is the same but the content is different.
> > >
> > > I need to refine my query to produce only one copy of any that is not
> in
> > > set 0
> > >
> > > file1    0    ABCD
> > > file1    1    ABCD
> > > file1    3    EF01
> > > file2    0    BCE2
> > > file2    2    BCE2
> > > file3    5    EE34
> > > file4    0    EE22
> > > file4    1    FF34
> > > file4    3    FF34
> > > file4    4    FF34
> > >
> > >
> > > My query would return
> > >
> > > file1    3    EF01
> > > file3    5    EE34
> > > file4    1    FF34, or file4    3    FF34, or file4    4    FF34
> > >
> > > Thanks
> > >
> > >
> > >
> >
> >
> > --
> > Paul
> > www.sandersonforensics.com
> > skype: r3scue193
> > twitter: @sandersonforens
> > Tel +44 (0)1326 572786
> > _______________________________________________
> > 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
> >
>
>
>
> --
> Paul
> www.sandersonforensics.com
> skype: r3scue193
> twitter: @sandersonforens
> Tel +44 (0)1326 572786
> _______________________________________________
> 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
>



-- 
Paul
www.sandersonforensics.com
skype: r3scue193
twitter: @sandersonforens
Tel +44 (0)1326 572786
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to