I believe that unless you have constrained nR1 nR2 nR3 ... nR6 as NOT NULL then
select
(select RefItem from REFTABLE where id=nR1),
(select RefItem from REFTABLE where id=nR2),
(select RefItem from REFTABLE where id=nR3),
(select RefItem from REFTABLE where id=nR4),
(select RefItem from REFTABLE where id=nR5),
(select RefItem from REFTABLE where id=nR6)
from TBL;
written in join syntax needs to be expressed thusly:
select ref1.RetItem, ref2.RetItem, ref3.RetItem, ref4.RetItem,
ref5.RetItem, ref6.RetItem
from TBL
outer join REFTABLE ref1 on (nR1=ref1.id)
outer join REFTABLE ref2 on (nR2=ref2.id)
outer join REFTABLE ref3 on (nR3=ref3.id)
outer join REFTABLE ref4 on (nR4=ref4.id)
outer join REFTABLE ref5 on (nR5=ref5.id)
outer join REFTABLE ref6 on (nR6=ref6.id);
in order to obtain the comparable result sets where there is a NULL value.
---
() ascii ribbon campaign against html e-mail
/\ www.asciiribbon.org
> On 10/17/2012 4:23 PM, Gert Van Assche wrote:
> > I don't know how to do something very simple like this. I have two table
> > and I would like to see the value of one table as it is expressed in the
> > other.
> >
> > CREATE TABLE [REFTABLE] (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
> > [RefItem] CHAR);
> > INSERT INTO [REFTABLE]([RefItem]) VALUES('One');
> > INSERT INTO [REFTABLE]([RefItem]) VALUES('Two');
> > INSERT INTO [REFTABLE]([RefItem]) VALUES('Three');
> >
> > CREATE TABLE [TBL] (
> > id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
> > [nR1] CONSTRAINT [r1] REFERENCES [REFTABLE]([id]),
> > [nR2] CONSTRAINT [r2] REFERENCES [REFTABLE]([id]),
> > [nR3] CONSTRAINT [r3] REFERENCES [REFTABLE]([id]),
> > [nR4] CONSTRAINT [r4] REFERENCES [REFTABLE]([id]),
> > [nR5] CONSTRAINT [r5] REFERENCES [REFTABLE]([id]),
> > [nR6] CONSTRAINT [r6] REFERENCES [REFTABLE]([id])
> > );
> >
> > INSERT INTO [TBL]([nR1], [nR2], [nR3], [nR4], [nR5], [nR6]) VALUES('1',
> > '2', '2', '3', '3', '3');
> >
> > I would like to do a select from TBL where I would see this:
> > 'One', 'Two', 'Two', 'Three', 'Three', 'Three'
>
> select
> (select RefItem from REFTABLE where id=nR1),
> (select RefItem from REFTABLE where id=nR2),
> (select RefItem from REFTABLE where id=nR3),
> (select RefItem from REFTABLE where id=nR4),
> (select RefItem from REFTABLE where id=nR5),
> (select RefItem from REFTABLE where id=nR6)
> from TBL;
>
> -- or
>
> select ref1.RetItem, ref2.RetItem, ref3.RetItem, ref4.RetItem,
> ref5.RetItem, ref6.RetItem
> from TBL join REFTABLE ref1 on (nR1=ref1.id)
> join REFTABLE ref2 on (nR2=ref2.id)
> join REFTABLE ref3 on (nR3=ref3.id)
> join REFTABLE ref4 on (nR4=ref4.id)
> join REFTABLE ref5 on (nR5=ref5.id)
> join REFTABLE ref6 on (nR6=ref6.id);
>
> --
> Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users