> From: punk.k...@gmail.com
> Date: Sun, 3 Apr 2011 07:52:42 -0500
> To: sqlite-users@sqlite.org
> Subject: Re: [sqlite] Question:how to insert row with multiple values from
> same field of different rows of another table?
>
>
> On Apr 3, 2011, at 7:50 AM, Luuk wrote:
>
> > 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'...
> >
>
> You also want to do all of the above in a TRANSACTION, preferably with a
> TRIGGER, to ensure the correct relationships are preserved.
Ok I looked into transactions (I'm new to sql!). Isn't a transaction
automatically created with the insert statement? Or are you saying I need to
explicitly begin/end one as part of the solution to my problem?
And regarding a trigger to ensure the correct relationships are preserved...
yeah you're right, but that's another issue isn't it? Or is it related to this
issue in a way that I'm not seeing?
Thanks.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users