2015-04-04 4 views
0

J'ai deux grandes tables dans sqlite3 et devez faire une jointure à gauche et créer une nouvelle table (myTable). J'ai également besoin de faire correspondre deux colonnes (noms différents) de chacune des tables, puis de les renommer pour la troisième table (myTable). Ci-dessous mon code actuel, mais je continue à recevoir une erreur à la fin: nom de la colonne ambiguë faa.citysqlite gauche rejoindre la syntaxe avec créer une table comme

Tableau 1: avion

Tableau 2: faa

D'abord, je suis correspondant avion. codez avec faa.iata, puis renommez-le en oCity (myTable.oCity). Deuxièmement, je suis en train de faire correspondre airplane.dCode avec faa.city et de le renommer dCity (myTable.dCity).

CREATE TABLE myTable AS 
SELECT airplane.code AS oCity, faa.city AS dCity, airplane.month, airplane.dayOfMonth, airplane.uniqueCode, airplane.fNumber, airplane.scheduledTime 
FROM airplane, faa 
LEFT JOIN faa 
WHERE airplane.code = faa.iata 
AND airplane.dCode = faa.city; 

Répondre

1

D'abord, vous avez besoin d'une clause on. Deuxièmement, vous devez utiliser les alias de table corrects. Troisièmement, vous n'avez pas besoin de mentionner faa deux fois dans la clause from:

CREATE TABLE myTable AS 
    SELECT a.code AS oCity, faa.city AS dCity, a.month, a.dayOfMonth, 
      a.uniqueCode, a.fNumber, a.scheduledTime 
    FROM airplane a LEFT JOIN 
     faa 
     ON a.code = faa.iata AND a.dCode = faa.city; 

Une règle simple: Ne jamais utiliser des virgules dans la clause from.