Membuat gabungan berdasarkan beberapa bidang menggunakan ArcGIS Desktop?

8

Saya memiliki dua kelas fitur dalam File Geodatabase yang ingin saya gabung berdasarkan banyak bidang. Saya telah mencari situs ini dan Google dan yang saya dapatkan hanyalah menggunakan alat Make Query Table. Saya sudah mencoba ini, tetapi saya terus mendapatkan kesalahan SQL. SQL saya sangat buruk dan saya yakin saya kehilangan sesuatu.

Saya sadar saya bisa membuat bidang baru dan menggabungkan nilai-nilai dari bidang saya, tetapi saya ingin menghindari ini, jika memungkinkan.

Saya menggunakan sesuatu yang terlihat seperti ini:

(Table1.Field1 = Table2.Field1) AND (Table1.Field2 = Table2.Field2) AND (Table1.Field3 = Table2.Field3)

Ketika saya memverifikasi kueri, saya mendapatkan kesalahan yang mengatakan:

There was an error with the expression. 
An Invalid SQL statement was used.
An invalid SQL statement was used. [Table1]

Juga, jika seseorang memiliki solusi lain yang tidak menggunakan alat ini, saya senang mendengarnya.

Fezter
sumber
Coba gabungkan Tabel 1 ke Tabel 2, lalu gabungkan Tabel 3 dengan hasil itu. Ini juga akan membantu Anda jika Anda menggunakan tombol builder ([sql] pada alat Make Query Table) untuk memverifikasi sintaksis.
nagytech
Catatan, hanya ada dua tabel tetapi tiga bidang. Saya menggunakan pembuat kueri dan kesalahan yang saya dapatkan muncul ketika saya mengklik Verifikasi. Bergabung secara efektif bergabung dengan bidang 1,2,3 dari tabel 1 ke bidang 1,2,3 dari tabel 2.
Fezter
Saya tidak membaca posting dengan sangat baik, sekarang lebih masuk akal.
nagytech
Sama seperti pengingat: pastikan juga kelas atau tabel adalah bagian dari geodatabase yang sama DAN pastikan bidang-bidang kunci tempat sambungan akan dioperasikan adalah dari jenis yang sama.

Jawaban:

11

Sintaks Anda salah.

Referensi

Jika Anda membaca bantuan sidebar Make Query Table :

Ekspresi (opsional)

Ekspresi SQL yang digunakan untuk memilih subset rekaman. Sintaks untuk ekspresi sedikit berbeda tergantung pada sumber data. Misalnya, jika Anda meminta file atau tabel geodatab ArcSDE, shapefile, cakupan, dBase, atau INFO, sertakan nama bidang dalam tanda kutip ganda:

"MY_FIELD"

Jika Anda menanyakan geodatabase pribadi, sertakan bidang dalam tanda kurung:

[MY_FIELD]

dll ...

Itu akan menyiratkan format yang benar sebagai:

"Table2"."f1" = "Table1"."f1" AND "Table2"."f2" = "Table1"."f2" AND "Table2"."f3" = "Table1"."f3" 

Naskah

Cuplikan python berikut akan memungkinkan Anda untuk menjalankan alat tanpa kesalahan:

arcpy.MakeQueryTable_management("Table1;Table2","QueryTable11111","NO_KEY_FIELD","#","Table1.f1 #;Table1.f2 #;Table1.f3 #;Table2.f1 #;Table2.f2 #;Table2.f3 #","/\Table1/\./\f1/\ = /\Table2/\./\f1/\ AND /\Table1/\./\f2/\ = /\Table2/\./\f2/\ AND /\Table1/\./\f3/\ = /\Table2/\./\f3/\")

Hasil

masukkan deskripsi gambar di sini

nagytech
sumber
Saya mengetahui metode ini, seperti yang saya sebutkan dalam pertanyaan saya. Saya mencari cara lain, jika ada.
Fezter
3
Meskipun Anda mengetahui solusinya, dan pada kenyataannya, merupakan solusi untuk masalah Anda, orang lain mungkin tidak.
nagytech
@Fezter Saya sudah memperbarui jawaban saya, silakan lihat.
nagytech
terima kasih atas jawaban yang diperbarui. Saya menggunakan pembuat kueri, jadi saya menganggapnya akan secara otomatis memasukkannya ke dalam sintaks yang benar untuk saya. Saya menambahkan tanda kutip dan itu sedikit lebih jauh dari sebelumnya. Saya dapat menjalankan alat tetapi saya mendapatkan kesalahan berikut sekarang: ERROR 999999: Fungsi eksekusi kesalahan. Bidang yang diharapkan tidak ditemukan atau tidak dapat diambil dengan benar. [QueryTable] Bidang yang diharapkan tidak ditemukan atau tidak dapat diambil dengan benar. [Table2.Field1] Field yang diharapkan tidak ditemukan atau tidak dapat diambil dengan benar. [Table2.Field1] Gagal mengeksekusi (MakeQueryTable).
Fezter
1
Saya telah mengambil kembali downvote untuk usaha Anda. Sangat dihargai.
Fezter
6

(FGDB 10.2 & ArcMAP 10.2) Mungkin membuka pertanyaan lama - tapi saya pikir ini relevan. Pembuat Query Table SQL membuat kesalahan saat Anda memverifikasi, bahkan jika sintaks Anda sudah benar. Saya membuat permintaan saya tanpa tanda kutip ganda atau tanda kurung

Table1.Field1 = Table2.Field1 AND Table1.Field2 = Table2.Field2

dan tidak memilih verifikasi; Saya hanya menjalankan alat dan tabel output saya dibuat dengan benar.

Pertanyaan Stackexchange lain yang merujuk kesalahan ini; Tinjau jawaban User2118

Barrett
sumber
2
Saya mengalami hal yang sama dengan FGDB. Saya menjalankan alat sekali dengan tanda kutip ("table.field" = "table2.field") seperti Pembuat Ekspresi dibuat, dan Verifikasi dan alat gagal. Saya menghapus tanda kutip (table.field = table2.field) dan verifikasi gagal, tetapi alat berjalan dengan sukses. Baik ArcGIS Desktop dan FGDB adalah 10.2.2.
Dan