2011-07-26 4 views
0

Je suis un débutant dans MYSQL. Toute aide à ce sujet sera appréciée.Requête pour joindre deux tables

J'ai deux tables aéroports et les postes avec les champs suivants:

Aéroports

id, Airport-code, Airport_name 

Messages

id, Source_Airport_code, Destination_airport_code, Date_of_departure, preference 

Comment puis-je obtenir un enregistrement avec les champs suivants (Ici Source et Destination correspondent aux noms d'aéroports au lieu des codes):

Source, destination, date_of_departure 

Répondre

0

Essayez ceci pour commencer:

select 
    s.airport_name as source, 
    d.airport_name as destination, 
    p.date_of_departure 
from posts p 
    inner join airports s 
    on p.source_airport_code = s.id 
    inner join airports d 
    on d.source_airport_code = d.id 

Et je déteste le dire, mais je pense que vous avez un long chemin à parcourir.

2

Si le FK en Posts.*_Airport_code ne se réfère pas à Airports.id comme MJB suppose, mais à Airports.Airport_code puis

SELECT 
    APS.Airport_name AS Source, 
    APD.Airport_name AS Destination, 
    Posts.date_of_departure 
FROM Posts 
    INNER JOIN Airports APS ON(APS.Airport_code = Posts.Source_Airport_code) 
    INNER JOIN Airports APD ON(APD.Airport_code = Posts.Destination_airport_code) 
+0

D'oh - Je pense que vous avez raison. J'aurais dû lire plus attentivement. – MJB