2011-07-22 42 views
0

我正在创建一个数据库,其中包含德国境内所有可能的地理坐标和邮政编码。我正在使用OpenGeoDb项目。我已经建立了数据库,现在我正在尝试在其中加入Radius搜索。执行半径搜索的说明可在(German Language) OpenGeoDb wiki中找到。我试图执行给定的查询,但它给了我一个错误。在OpenGeoDb上搜索半径

首先我创造一个从数据库中所需的数据导入到表:

CREATE TABLE `zip_coordinates` (
zc_id INT NOT NULL auto_increment PRIMARY KEY, 
    zc_loc_id INT NOT NULL , 
    zc_zip VARCHAR(10) NOT NULL , 
    zc_location_name VARCHAR(255) NOT NULL , 
    zc_lat DOUBLE NOT NULL , 
    zc_lon DOUBLE NOT NULL 
) 

然后将数据导入到我使用下面的查询表zip_coordinate:

INSERT INTO zip_coordinates (zc_loc_id, zc_zip, zc_location_name, zc_lat, zc_lon) 
SELECT gl.loc_id, plz.text_val, name.text_val, coord.lat, coord.lon 
FROM geodb_textdata plz 
LEFT JOIN geodb_textdata name ON name.loc_id = plz.loc_id 
LEFT JOIN geodb_locations gl ON gl.loc_id = plz.loc_id 
LEFT JOIN geodb_hierarchies as tier ON plz.loc_id = tier.loc_id 
LEFT JOIN geodb_coordinates coord ON plz.loc_id = coord.loc_id 
WHERE plz.text_type =500300000 
    AND name.text_type =500100000 
    AND tier.id_lvl1 = 104 
    AND tier.id_lvl2 = 105 
    AND name.text_locale = "de" 
    AND (
     gl.loc_type =100600000 
     OR 
     gl.loc_type =100700000 
); 

当我尝试执行zc_lat不能为NULL的上述查询时,出现错误。 我还没有想出解决这个问题的方法。您的帮助或建议将不胜感激。

+0

可以请你[编辑]你的问题,并修复格式?如果你打算在这里提问,知道如何格式化代码是很重要的。这并不难,如果你尝试。 – Will

回答

1

昨天有同样的问题... 它的工作对我来说,当我删除了条件至极包括“梯队” 原因这是指表至极为空....