Beginner question - select with multiple tables - Mailing list pgsql-sql

From Dave Inskeep
Subject Beginner question - select with multiple tables
Date
Msg-id 19990120045127.28717.rocketmail@send103.yahoomail.com
Whole thread Raw
Responses Re: [SQL] Beginner question - select with multiple tables  (Herouth Maoz <herouth@oumail.openu.ac.il>)
List pgsql-sql
Hi,

I'm trying to perform a select over several tables I've created. There
are five tables - the first contains message header information and a
key field (called node). The other four contain message body
information and the same node field. I'm getting unexpected results
when I query across the multiple tables.

The following statement does not work if there are not any records in
vall_bod2:

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?

Many thanks,
Dave Inskeep






_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com


pgsql-sql by date:

Previous
From: Brian Baquiran
Date:
Subject: Re: [SQL] set type and in clause
Next
From: Herouth Maoz
Date:
Subject: Re: [SQL] Beginner question - select with multiple tables