2017-07-13 3 views
1

私はSQLを初めて使用していて、外部テーブルの列の値を持つインスタンスを検索する方法CSVファイル)。これをより明確に説明すると、これは私が取り組んでいることです:csvファイルの列に緯度が含まれ、別の列に経度が含まれている場合は、私はテーブルに指定された緯度と経度で、いくつかの場所に関する情報を含むテーブルを検索したいと思います。SQL - CSVファイルからデータをロードし、そのデータを使用して別のテーブルのインスタンスを検索する

csvファイルから緯度と経度を入力した特定の場所に関する情報を取得したいと考えています。

このように見えますか?ここで与えられたよう

\copy MyTable FROM 'C:\Users\Admin\Desktop\Catalog.csv' WITH CSV; 

- >http://postgresguide.com/utilities/copy.html

CREATE TABLE MyTable( 
    latitude DECIMAL(5, 2) NOT NULL, 
    longitude DECIMAL(5, 2) NOT NULL 
); 

LOAD DATA INFILE 'C:\Users\Admin\Desktop\Catalog.csv' 
INTO TABLE MyTable 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 

SELECT 
    main.object_id, 
    main.latitude, 
    main.longitude, 
    main.Some_Information 

FROM 
    location_info AS main, 
    MyTable AS temp 

WHERE 
    main.latitude = temp.latitude AND 
    main.longitude = temp.longitude 

私も同じようpsqlの\コピーを使用してみました。 しかし、これはうまくいきませんでした。コピーの前後に「\」のエラーがありましたが、古いバージョンのpsqlが存在する可能性があります。 また、私はスーパーユーザーではないので、\ copyを使用してCOPY FROMを使用しません。

また、テンポラリテーブルを使用して、\ copyと一緒に使ってみました。それは上記と同じエラーを出しました。

+0

ようこそ、CrunchyMint。あなたはあなたの質問に複数の異なるデータベースをタグ付けしました。あなたの投稿が意味するようにPostgreSQLを使用しているなら、mysqlとsql-serverというタグはまったく異なるRDMSであるので削除してください。 – Jacobm001

+0

正確なエラーは何ですか? – Jacobm001

+0

申し訳ありませんが、私はそれらを編集しました。 – CrunchyMint

答えて

0

PostgreSQLは、使用しているLOAD DATAの構文をサポートしていません。代わりにCOPYを使用する必要があります。

あなたのワークフローは、より多くのようになります。ここで注目すべき三つの主要なものがあります

CREATE TABLE MyTable( 
    latitude DECIMAL(5, 2) NOT NULL, 
    longitude DECIMAL(5, 2) NOT NULL 
); 

COPY MyTable(latitude, longitude) 
FROM 'C:\Users\Admin\Desktop\Catalog.csv' WITH CSV; 

SELECT 
    main.object_id, 
    main.latitude, 
    main.longitude, 
    main.Some_Information 
FROM 
    location_info AS main 
    JOIN MyTable AS temp 
    on main.latitude = temp.latitude 
    and main.longitude = temp.longitude 

  1. COPYコマンドから\を削除しました。
  2. COPYコマンドで挿入しようとしている列を指定しました。 CSVファイル内の列の順序が異なる場合は、COPY式で列の順序を変更するだけです。
  3. 私は、あなたの結合の構文を標準のANSI結合に変更しました。ロジックは同じですが、これは可読性/互換性の理由から使用するためのより良い標準です。
関連する問題