js=# SELECT departure_date, departure.code AS departure_code, arrival.code as 
arraival_codeFROM jsjourneys         JOIN jsports as departure ON 
jsjourneys.departure_port = departure.id         JOIN jsports as arrival on 
jsjourneys.arraival_port = arraival.id LIMIT4;
Regards,Daniel Hernández.San Diego, CA."The more you learn, more you 
earn". --- On Thu 01/10, Colin Wetherbee < [EMAIL PROTECTED] > 
wrote:From: Colin Wetherbee [mailto: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Thu, 
10 Jan 2008 17:07:00 -0500Subject: [SQL] JOIN a table twice for different 
values in the same queryGreetings.I have two tables I'm having a little trouble 
figuring out how to JOIN.One contains a list of airports along with their IATA 
codes, cities, names, and so forth.  This table also contains an id column, 
which is a serial primary key.The other table contains a list of flights, each 
of which has a departure_port and an arrival_port, which are foreign keys 
referencing the id field of the first table.I would like to construct a query 
on the flight table that returns the names of both the departure port and the 
arrival port.The following query shows how I would get just the departure 
port.js=# SELECT departure_date, jsports.code AS 
departure_code FROMjsjourneys JOIN jsports ON jsjourneys.departure_port = 
jsports.id LIMIT4;  departure_date | 
departure_code----------------+----------------  2006-11-19     | ATL  
2006-11-16     | ATL  2006-11-19     | BHM  2007-02-03     | BOS(4 rows)When I 
SELECT jsports.code, the result comes from the JOIN ... ON 
jsjourneys.departure_port = jsports.id.I would *also* like to include something 
in the query to get the jsports.code for jsjourneys.arrival_port, but I'm 
unsure how to do this, since SELECTing jsports.code twice would be ambiguous 
(and, in any case, just duplicates the departure_code).I'd like to produce a 
result set that looks something like the following (which doesn't come from a 
real query).  departure_date | departure_code | 
arrival_code----------------+----------------+--------------  2006-11-19     | 
ATL            | JFK  2006-11-16     | ATL            | DFW  2006-11-19     | 
BHM            | IAH  2007-02-03     | BOS            | LAXI'd appreciate some 
help.FYI, table definitions for jsjourneys and jsports follow.js=# \d 
jsjourneys                                         Table 
"public.jsjourneys"        Column        |           Type           | 
   
Modifiers---------------------+--------------------------+---------------------------------------------------------
  id                  | bigint                   | not null default 
nextval('jsjourneys_id_seq'::regclass)  userid              | bigint            
       | not null  typeid              | integer                  | not null  
carrier             | integer                  |  number              | integer 
                 |  departure_port      | integer                  | not null  
arrival_port        | integer                  | not null  departure_gate      
| character varying        |  arrival_gate        | character varying        |  
departure_date      | date                     | not null  fare_class          
| integer                  |  
scheduled_departure | timestamp with time zone |  scheduled_arrival   | 
timestamp with time zone |  actual_departure    | timestamp with time zone |  
actual_arrival      | timestamp with time zone |  equipment           | integer 
                 |  notes               | character varying(1500)  |  seat      
          | character varying(4)     |  confirmation        | character 
varying(20)    |Indexes:     "jsjourneys_pkey" PRIMARY KEY, btree 
(id)Foreign-key constraints:     "jsjourneys_arrival_port_fkey" 
FOREIGN KEY (arrival_port) REFERENCES jsports(id)     
"jsjourneys_carrier_fkey" FOREIGN KEY (carrier) REFERENCES 
jscarriers(id)     "jsjourneys_departure_port_fkey" FOREIGN KEY 
(departure_port) REFERENCES jsports(id)     
"jsjourneys_equipment_fkey" FOREIGN KEY (equipment) REFERENCES 
jsequipment(id)     "jsjourneys_fare_class_fkey" FOREIGN KEY 
(fare_class) REFERENCES jsfareclasses(id)     
"jsjourneys_typeid_fkey" FOREIGN KEY (typeid) REFERENCES 
jsjourneytypes(id)     "jsjourneys_userid_fkey" FOREIGN KEY (userid) 
REFERENCES jsusers(id)js=# \d jsports                                 Table 
"public.jsports"   Column   |       Type        |                     
 Modifiers 
-----------+-------------------+------------------------------------------------------
  id        | integer           | not null default 
nextval('jsports_id_seq'::regclass)  code      | character varying | not null  
city      | character varying | not null  full_city | character varying | not 
null  name      | character varying |Indexes:     "jsports_pkey" 
PRIMARY KEY, btree (id)     "jsports_index_city" btree (city)     
"jsports_index_code" btree 
(code)Thanks!Colin---------------------------(end of 
broadcast)---------------------------TIP 4: Have you searched our list 
archives?               http://archives.postgresql.org

_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!

Reply via email to