创建sql语句以从表中返回信息

时间:2014-11-11 03:39:15

标签: datatable subquery postgis psql

我正在创建SQL查询以从表中返回信息,但我特别遇到问题。我想要归还科罗拉多州的所有城市地区。 查询的实际定义是

Return the names (name10) of all urban areas (in alphabetical order) that are entirely contained 
within Colorado. Return the results in alphabetical order. (64 records)

我使用的表是tl_2010_us_state10(它存储状态的信息)。我想我将在这个表中使用name10变量,因为它具有状态的所有名称。

    Table "public.tl_2010_us_state10"
    Column   |            Type             |                            Modifiers                             
 ------------+-----------------------------+-------------------------------------
  gid        | integer                     | not null default 
  region10   | character varying(2)        | 
  division10 | character varying(2)        | 
  statefp10  | character varying(2)        | 
  statens10  | character varying(8)        | 
  geoid10    | character varying(2)        | 
  stusps10   | character varying(2)        | 
  name10     | character varying(100)      |

然后我有一张显示所有城市信息的表格。我再一次认为我将使用name10变量,因为它存储了所有城市区域的名称。

                                      Table "public.tl_2010_us_uac10"
    Column   |            Type             |                           Modifiers                         
------------+-----------------------------+-------------------------------------
 gid        | integer                     | not null default 
 uace10     | character varying(5)        | 
 geoid10    | character varying(5)        | 
 name10     | character varying(100)      |

我在sql中编写的代码是

 select a.name10 from tl_2010_us_uac10 as a join tl_2010_us_state10 as b where (b.name10 = 'colorado');

但我收到此错误

LINE 1: ...l_2010_us_uac10 as a join tl_2010_us_state10 as b where (b.n...

gid是主键

1 个答案:

答案 0 :(得分:0)

您必须具有内部联接的连接条件。然后订购以满足您的分拣要求。

select a.name10 as urban_area
from tl_2010_us_uac10 as a 
join tl_2010_us_state10 as b 
     on b.gid = a.gid
where b.name10 = 'colorado'
order by a.name10;