From: | "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com> |
---|---|
To: | Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>, Dave Inskeep <dinskeep(at)yahoo(dot)com> |
Cc: | pgsql-sql(at)postgreSQL(dot)org |
Subject: | RE: [SQL] Beginner question - select with multiple tables |
Date: | 1999-01-20 15:25:53 |
Message-ID: | F10BB1FAF801D111829B0060971D839F5F8072@cpsmail |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> > select distinct vall.node from vall, vall_bod1, vall_bod2 where
> > ( vall.node = vall_bod1.node and vall_bod1.bod1 LIKE '%brake%' ) or
> > ( vall.node = vall_bod2.node and vall_bod2.bod2 LIKE '%brake%' );
> >
> > However, if I insert a record into vall_bod2 (whether or not it
> > contains the word brake) and a corresponding header record into vall
> > with a matching node, the same exact query will return the nodes of
> > all records in vall_bod1 with the word 'brake' in the bod1 field.
> >
> > The same holds true if I query across vall_bod1, 2, and 3, and there
> > are no records in vall_bod3. If I insert a single record in
> vall_bod3,
> > even if it doesn't match, the query will work for matching
> records in
> > vall_bod1 and vall_bod2. Ditto when I try across 1-4.
> >
> > Can someone explain why this happens, am I doing something wrong? Is
> > there a better way to achieve the same results, i.e. JOINS? Does
> > Postgresql support JOINS?
>
> First, you *are* doing a join here.
>
> But you are missing the logic. Perhaps you should tell us,
> instead of what
> query you did (which obviously returns the correct results by your
> description), what was the result you wanted? What rows did
> you want to be
> returned?
>
> Herouth
What you most likely want:
select vall.node, vall_bod1.bod1
from vall, vall_bod1
where vall.node = vall_bod1.node and vall_bod1.bod1 LIKE '%brake%'
UNION
select vall.node, vall_bod2.bod2
from vall, vall_bod2
where vall.node = vall_bod2.node and vall_bod2.bod2 LIKE '%brake%';
If you are sure there won't be duplicate information in bod1 or bod2
then Make it UNION ALL (quicker).
Hope this helps,
DEJ
From | Date | Subject | |
---|---|---|---|
Next Message | James Andrews | 1999-01-20 16:14:02 | Selecting Table cell names |
Previous Message | Yuri Yurchenko | 1999-01-20 10:19:35 | Text type function |