On 03-04-2011 14:43, Colin Cuthbert wrote:
> First time I've used this (or any!) mailing list, so sorry if I've done 
> something wrong.
>
> Pretty sure my question (in the subect) is phrased badly but it's the best I 
> could do!
>
> create table People(id integer primary key, name text);
> insert into People (name) values ('bob');
> insert into People (name) values ('fred');
>
> create table Cars(id integer primary key, name text);
> insert into Cars (name) values ('ford');
> insert into Cars (name) values ('volvo');
>
> create table CarOwners(id integer primary key, carId integer references 
> Cars(id), ownerId integer references People(id));
> insert into CarOwners (carId, ownerId) select Cars.id, People.id from Cars, 
> People where Cars.name='ford' and People.name='bob';
>
> create table Couples(id integer primary key, personId1 integer references 
> People(id), personId2 integer references People(id));
>
> The last 'insert' statement seems to work for inserting a row into the 
> 'CarOwners' table, but I'm not sure that's the right/best way to do it.
>
> But how can I do a similar insert into the 'Couples' table?  ie, how can I 
> insert a row (specifying 'personId1' and 'personId2' via queries based on 
> 'People.name') into the 'Couples' table?

You forgot to define 'Couples'.....
> Does it start something like this?
>
> insert into Couples (personId1, personId2) select id, id from People where...

select id, id from People will return the same id (from the same record)
twice....

somehting like:
select a.id, b.id from People a join People b on a.id<>b.id
will give other results, but what youactually want to be returned
depends on the definition of a 'Couple'...

;)
> Thanks.
>
> Colin.

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

Reply via email to