

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
<a name="in.select"></a>

**PILIH DI**

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 nama`my_keyspace.customers`. Tabel memiliki satu kolom kunci utama`department_id`, dua kolom pengelompokan `sales_region_id` dan`sales_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 contoh dari ini.

```
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, lihat[Hasil paginasi di Amazon Keyspaces](paginating-results.md).

```
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
```