我在sqlite3中有两个大表,需要进行左连接并创建一个新表(myTable)。我还需要匹配每个表中的两列(不同的名称),然后将它们重命名为第三个表(myTable)。下面是我当前的代码,但最后我收到一个错误:模糊列名称faa.city
表1:飞机
表2:faa
首先,我将airplane.code与faa.iata匹配,然后将其重命名为oCity(myTable.oCity)。其次,我将airplane.dCode与faa.city匹配,并将其重命名为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;
答案 0 :(得分:1)
首先,您需要一个on
子句。其次,您需要使用正确的表别名。第三,您不需要在faa
条款中提及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;
一个简单的规则:永远不要在from
子句中使用逗号。