From: | Randall Skelton <skelton(at)atm(dot)ox(dot)ac(dot)uk> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Join with equals? |
Date: | 2004-02-18 16:58:24 |
Message-ID: | AA5DDB2E-6233-11D8-B141-000393C92230@atm.ox.ac.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Greetings all,
I am trying to do what should be a simple join but the tables are very
large and it is taking a long, long time. I have the feeling that I
have stuffed up something in the syntax.
Here is what I have:
telemetry=> select (tq1.timestamp = tq2.timestamp) as timestamp,
tq1.value as q1, tq2.value as q2 from cal_quat_1 tq1 inner join
cal_quat_2 as tq2 using (timestamp) where timestamp > '2004-01-12
09:47:56.0000 +0' and timestamp < '2004-01-12 09:50:44.7187 +0' order
by timestamp;
telemetry=> \d cal_quat_1
Table "cal_quat_1"
Column | Type | Modifiers
-----------+--------------------------+-----------
timestamp | timestamp with time zone |
value | double precision |
telemetry=> \d cal_quat_2
Table "cal_quat_2"
Column | Type | Modifiers
-----------+--------------------------+-----------
timestamp | timestamp with time zone |
value | double precision |
My understanding of an inner join is that the query above will restrict
this to finding tq1.timestamp, tq1.value and then move onto t12.value
to search the subset. I have tried this with and without the '=' sign
and it isn't clear if it is making any difference at all. I have not
allowed the query to finish as it seems to take more than 10 minutes.
Both timestamps are indexed and I expect about 150 rows to be returned.
At the end of the day, I have four identical tables of quaternions
(timestamp, value) and I need to extract them all for a range of
timestamps.
Cheers,
Randall
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2004-02-18 17:27:40 | Re: Adding Functionality |
Previous Message | Fernando Alonso Renault | 2004-02-18 16:49:39 | Adding Functionality |