SQL代码无法查看某个表

时间:2015-11-24 21:05:16

标签: sql

insert into airports(country_id)
select country_id 
from countries 
where countries.country_name =  flight_all.dep_country

这个简单的代码无法编译,因为sql没有看到flight_all表。如何让它可见(没有任何额外的'来自'关键字)?

2 个答案:

答案 0 :(得分:3)

你应该谷歌SQL JOIN

您可能希望DISTINCT避免插入重复的

insert into airports(country_id)
select distinct country_id 
from countries
join flight_all
  ON countries.country_name =  flight_all.dep_country

答案 1 :(得分:0)

因为您的查询中未定义flight_all。您需要在FROM子句中标识您的表。使用您当前的方法,它看起来像这样:

select country_id 
from countries, flight_all
where countries.country_name = flight_all.dep_country

但是,请注意,此语法被认为相当草率(甚至可能已弃用,具体取决于RDBMS)。相反,请使用JOIN而不是WHERE子句来执行JOIN逻辑。像这样:

select country_id 
from countries
inner join flight_all
on countries.country_name = flight_all.dep_country