Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan IN
operator dengan SELECT
pernyataan dalam kueri di Amazon Keyspaces
SELECTDI
Anda dapat menanyakan data dari tabel menggunakan SELECT
pernyataan, yang membaca satu atau beberapa kolom untuk satu atau beberapa baris dalam tabel dan mengembalikan kumpulan hasil yang berisi baris yang cocok dengan permintaan. SELECT
Pernyataan berisi select_clause
yang menentukan kolom mana yang akan dibaca dan dikembalikan dalam kumpulan hasil. Klausa dapat berisi instruksi untuk mengubah data sebelum mengembalikannya. WHERE
Klausa opsional menentukan baris mana yang harus ditanyakan dan terdiri dari hubungan pada kolom yang merupakan bagian dari kunci utama. Amazon Keyspaces mendukung IN
kata kunci dalam klausa. WHERE
Bagian ini menggunakan contoh untuk menunjukkan bagaimana Amazon Keyspaces memproses SELECT
pernyataan dengan kata kunci. IN
Contoh ini menunjukkan bagaimana Amazon Keyspaces SELECT
memecah pernyataan dengan kata kunci menjadi IN
subquery. Dalam contoh ini kita menggunakan tabel dengan namamy_keyspace.customers
. Tabel memiliki satu kolom kunci utamadepartment_id
, dua kolom pengelompokan sales_region_id
dansales_representative_id
, dan satu kolom yang berisi nama pelanggan di customer_name
kolom.
SELECT * FROM my_keyspace.customers; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 0 | 1 | b 0 | 1 | 0 | c 0 | 1 | 1 | d 1 | 0 | 0 | e 1 | 0 | 1 | f 1 | 1 | 0 | g 1 | 1 | 1 | h
Dengan menggunakan tabel ini, Anda dapat menjalankan SELECT
pernyataan berikut untuk menemukan pelanggan di departemen dan wilayah penjualan yang Anda minati dengan IN
kata kunci dalam WHERE
klausa. Pernyataan berikut adalah contohnya.
SELECT * FROM my_keyspace.customers WHERE department_id IN (0, 1) AND sales_region_id IN (0, 1);
Amazon Keyspaces membagi pernyataan ini menjadi empat subquery seperti yang ditunjukkan pada output berikut.
SELECT * FROM my_keyspace.customers WHERE department_id = 0 AND sales_region_id = 0; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 0 | 1 | b SELECT * FROM my_keyspace.customers WHERE department_id = 0 AND sales_region_id = 1; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 1 | 0 | c 0 | 1 | 1 | d SELECT * FROM my_keyspace.customers WHERE department_id = 1 AND sales_region_id = 0; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 1 | 0 | 0 | e 1 | 0 | 1 | f SELECT * FROM my_keyspace.customers WHERE department_id = 1 AND sales_region_id = 1; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 1 | 1 | 0 | g 1 | 1 | 1 | h
Saat IN
kata kunci digunakan, Amazon Keyspaces secara otomatis melakukan paginasi hasil dalam salah satu kasus berikut:
Setelah setiap subquery ke-10 diproses.
Setelah memproses 1MB IO logis.
Jika Anda mengonfigurasi
PAGE SIZE
, Amazon Keyspaces melakukan paginasi setelah membaca jumlah kueri untuk diproses berdasarkan set.PAGE SIZE
Saat Anda menggunakan
LIMIT
kata kunci untuk mengurangi jumlah baris yang dikembalikan, Amazon Keyspaces melakukan paginasi setelah membaca jumlah kueri untuk diproses berdasarkan set.LIMIT
Tabel berikut digunakan untuk mengilustrasikan ini dengan sebuah contoh.
Untuk informasi lebih lanjut tentang pagination, lihatHasil paginasi di Amazon Keyspaces.
SELECT * FROM my_keyspace.customers; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 0 | 0 | g 2 | 1 | 1 | h 2 | 2 | 2 | i 0 | 0 | 0 | a 0 | 1 | 1 | b 0 | 2 | 2 | c 1 | 0 | 0 | d 1 | 1 | 1 | e 1 | 2 | 2 | f 3 | 0 | 0 | j 3 | 1 | 1 | k 3 | 2 | 2 | l
Anda dapat menjalankan pernyataan berikut pada tabel ini untuk melihat bagaimana pagination bekerja.
SELECT * FROM my_keyspace.customers WHERE department_id IN (0, 1, 2, 3) AND sales_region_id IN (0, 1, 2) AND sales_representative_id IN (0, 1);
Amazon Keyspaces memproses pernyataan ini sebagai 24 subkueri, karena kardinalitas produk Cartesian dari semua istilah yang terkandung dalam kueri ini adalah 24. IN
department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 1 | 1 | b 1 | 0 | 0 | d 1 | 1 | 1 | e ---MORE--- department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 0 | 0 | g 2 | 1 | 1 | h 3 | 0 | 0 | j ---MORE--- department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 3 | 1 | 1 | k
Contoh ini menunjukkan bagaimana Anda dapat menggunakan ORDER BY
klausa dalam SELECT
pernyataan dengan IN
kata kunci.
SELECT * FROM my_keyspace.customers WHERE department_id IN (3, 2, 1) ORDER BY sales_region_id DESC; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 3 | 2 | 2 | l 3 | 1 | 1 | k 3 | 0 | 0 | j 2 | 2 | 2 | i 2 | 1 | 1 | h 2 | 0 | 0 | g 1 | 2 | 2 | f 1 | 1 | 1 | e 1 | 0 | 0 | d
Subkueri diproses dalam urutan di mana kunci partisi dan kolom kunci pengelompokan disajikan dalam kueri. Dalam contoh di bawah ini, subquery untuk nilai kunci partisi” 2 “diproses terlebih dahulu, diikuti oleh subquery untuk nilai kunci partisi” 3 “dan” 1”. Hasil subquery yang diberikan diurutkan sesuai dengan klausa pengurutan kueri, jika ada, atau urutan pengelompokan tabel yang ditentukan selama pembuatan tabel.
SELECT * FROM my_keyspace.customers WHERE department_id IN (2, 3, 1) ORDER BY sales_region_id DESC; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 2 | 2 | i 2 | 1 | 1 | h 2 | 0 | 0 | g 3 | 2 | 2 | l 3 | 1 | 1 | k 3 | 0 | 0 | j 1 | 2 | 2 | f 1 | 1 | 1 | e 1 | 0 | 0 | d