ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

クエリ テーブルの作成 (Make Query Table)

  • サマリ
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

このツールは、SQL クエリをデータベースに適用し、結果をレイヤーまたはテーブル ビューのどちらかに表示します。クエリを使用して複数のテーブルを結合したり、データベース内の元のデータから列または行の一部を取得したりできます。

このツールは、ArcSDE ジオデータベース、ファイル ジオデータベース、パーソナル ジオデータベース、または OLE DB 接続からのデータに対して使用します。

使用法

  • このツールで作成されるレイヤーは一時的であるため、ドキュメントを保存しておかない限り、セッション後に削除されます。

  • すべての入力フィーチャクラスまたはテーブルは、同じ入力ワークスペース内のものでなければなりません。

  • Shape 列をフィールド リストに追加した場合、結果はレイヤーになります。それ以外の場合、結果はテーブル ビューになります。

  • 出力結果がレイヤーである場合、[レイヤー ファイルの保存 (Save To Layer File)] ツールを使用してレイヤー ファイルに保存するか、または [フィーチャのコピー (Copy Features)] ツールを使用してフィーチャクラスに保存することができます。

  • フィールド リスト内のフィールド順序は、出力レイヤーまたはテーブル ビューにフィールドが表示される順序を示しています。

  • このツールでは、キー フィールド オプションおよびキー フィールド リストを指定することができます。この情報は、行を一意に識別し、動的に生成された ObjectID 列をデータに追加するために使用されます。ObjectID 列がない場合、選択はサポートされません。

  • キー フィールド リストで、列をいくつか選択することができます。これらの列の組み合わせは、一意の値を定義するうえで必要です。

  • SQL 式を使用しても一致するレコードが返されない場合、出力フィーチャクラスは空になります。

  • フィーチャクラスは結合することが可能です。ただし、その場合は、フィールド リストに含めることのできるジオメトリ タイプのフィールドは最大で 1 つまでに限定されます。複数のジオメトリ列を追加しておいた場合、[OK] をクリックしたときにエラーが表示され、ツールの実行が中断されます。

  • [式] パラメーターの構文の詳細については、「SQL 式の作成」または「SQL リファレンス」をご参照ください。

  • [フィールド] パラメーターと [キー フィールド] パラメーターの [値の追加] ボタンは、ModelBuilder 専用です。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[フィールド] パラメーターと [キー フィールド] パラメーターにフィールド名が表示されない場合があります。[フィールドの追加] ボタンで [クエリ テーブルの作成 (Make Query Table)] ダイアログ ボックスに所定のフィールド (1 つまたは複数) を追加して完了した後、モデルの作成を続行できます。

  • 入力テーブルがファイル ジオデータベース内のものである場合、テーブルは一般的に [入力テーブル パラメーター] にリストされている順に結合されます。たとえば、テーブル 1 がテーブル 2 より前にリストされている場合、まずテーブル 1 から行を取得した後、その行に一致する行をテーブル 2 から取得すると、テーブル 2 が結合されます。ただし、結合の結果、インデックスの付いていないフィールド上のテーブル 2 に対してクエリが実行されて順序が反転した場合は、パフォーマンスの最大化を図るために、インデックス付きフィールド上のテーブル 1 に対してクエリが実行されて順序が反転します。これは、このツールと一緒にファイル ジオデータベース データを使用している場合に機能する、唯一のクエリ最適化ロジックです。一般的に、ファイル ジオデータベース内で、1 対多および 1 対 1 の結合を行うときに最適に動作します。

構文

MakeQueryTable_management (in_table, out_table, in_key_field_option, {in_key_field}, {in_field}, {where_clause})
パラメータ説明データ タイプ
in_table
[in_table,...]

クエリに使用するテーブル (1 つまたは複数) の名前。複数のテーブルがリストされている場合は、[式] パラメーターを使用して、テーブル同士の結合方法を定義することができます。

入力テーブルとして使用できるのは、ArcSDE ジオデータベース、ファイル ジオデータベース、パーソナル ジオデータベース、または OLE DB 接続からのものです。

Table View; Raster Layer
out_table

ツールで作成するレイヤーまたはテーブル ビューの名前。

Table View;Raster Layer
in_key_field_option

クエリ用の ObjectID フィールドを生成する場合、その生成方法を指定します。デフォルトは USE_KEY_FIELDS です。

  • USE_KEY_FIELDS —キー フィールド リストで選択したフィールドを、動的 ObjectID 列の定義に使用する必要のあることを示します。キー フィールド リストでフィールドを選択しないと、ADD VIRTUAL_KEY_FIELD オプションが自動的に適用されます。
  • ADD_VIRTUAL_KEY_FIELD —キー フィールドを選択しない場合でも、動的 ObjectID 列を生成するように指定するオプションです。この生成を行うには、ローカルのシステム管理ワークスペースにデータをコピーし、そのコピーに値が一意のフィールドを追加します。これにより、そのコピーにレイヤーまたはテーブル ビューからアクセスできるようになり、追加されたフィールドをキー フィールドとして使用できます。
  • NO_KEY_FIELD —動的 ObjectID 列を生成しないように指定するオプションです。このオプションがオンの場合、テーブル ビューの選択がサポートされなくなります。このオプションがオンになっている場合でも、フィールド リストに ObjectID タイプの列がすでに存在していれば、その列が ObjectID として使用されます。
String
in_key_field
[in_key_field,...]
(オプション)

クエリ内の行を一意に識別するために使用できる、フィールドまたはフィールドの組み合わせを指定します。このパラメーターが使用可能になるのは、USE_KEY_FIELDS が設定されているときだけです。

[フィールドの追加] ボタンは ModelBuilder だけで使用され、ダイアログ ボックスを完了してモデルの作成を続行できるように、必要なフィールドが追加されます。

Field
in_field
[[Field, {Alias}],...,...]
(オプション)

レイヤーまたはテーブルに格納されるフィールド。フィールド用のエイリアスが設定されている場合、この名前が表示されます。フィールドを指定しないと、すべてのテーブル内のすべてのフィールドが格納の対象になります。

Value Table
where_clause
(オプション)

レコードのサブセットを選択するために使用する SQL 式。SQL 構文の詳細については、「ArcGIS で使用される条件式の SQL リファレンス」「」をご参照ください。

SQL Expression

コードのサンプル

MakeQueryTable (クエリ テーブルの作成) の例 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、MakeQueryTable (クエリ テーブルの作成) 関数をイミディエイト モードで使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.MakeQueryTable_management (["Counties","codemog"], "queryout","ADD_VIRTUAL_KEY_FIELD", "",
                   [["Counties.OBJECTID", 'ObjectID'],["Counties.NAME", 'Name'],
                    ["codemog.Males", 'Males'], ["codemog.Females", 'Females']],
                   "Counties.FIPS = codemog.Fips and Counties.STATE_NAME = 'California'")
MakeQueryTable (クエリ テーブルの作成) の例 2 (スタンドアロン スクリプト)

次のスクリプトは、Python スクリプト環境で MakeQueryTable (クエリ テーブルの作成) ツールを使用する方法を、例を挙げて示したものです。

# MakeQueryTableOLEDB.py
# Description: Create a query table from two OLE DB tables using a limited set of
#               fields and establishing an equal join.
 
# Import system modules
import arcpy
 
try:
    # Local variables...
    tableList = ["Database Connections/balrog.odc/vtest.COUNTIES",\
                 "Database Connections/balrog.odc/vtest.CODEMOG"]
    
    fieldList = [["vtest.COUNTIES.OBJECTID", 'ObjectID'],["vtest.COUNTIES.NAME", 'Name']\
                 ["vtest.CODEMOG.Males", 'Males'],["vtest.CODEMOG.Females", 'Females']]
    whereClause = "vtest.COUNTIES.FIPS = vtest.CODEMOG.Fips" +\
                  "and vtest.COUNTIES.STATE_NAME = 'California'"
    keyField = "vtest.COUNTIES.OBJECTID"
    lyrName = "CountyCombined"
    # Make Query Table...
    arcpy.MakeQueryTable_management(tableList, lyrName,"USE_KEY_FIELDS", keyField, fieldList, whereClause)
 
    # Print the total rows
    print(arcpy.GetCount_management(lyrName))
 
    # Print the fields
    Fields = arcpy.ListFields(lyrName)
    for field in Fields:
        print(Field.name)
        
 
    # Save as a dBASE file
    arcpy.CopyRows_management(lyrName, "C:/temp/calinfo.dbf")
 
except Exception as err:
    print(err.args[0])

環境

  • 現在のワークスペース

ライセンス情報

  • ArcGIS for Desktop Basic: ○
  • ArcGIS for Desktop Standard: ○
  • ArcGIS for Desktop Advanced: ○

関連トピック

  • レイヤーとテーブル ビュー ツールセットの概要
  • レイヤーとテーブル ビューの使用
  • レイヤーとテーブル ビューの操作
  • クエリ テーブルの作成 (Make Query Table) ツールを使用したクエリの例
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル