Previous Next JavaScript must be enabled to correctly display this content

## Query API examples

To execute your query, you use the `NoSQLHandle.query()` API.

Download the full code TableJoins.java from the examples here.

       /* fetch rows based on joins*/
    private static void fetchRows(NoSQLHandle handle,String sql_stmt) throws Exception {
       try (
          QueryRequest queryRequest = new QueryRequest().setStatement(sql_stmt);
          QueryIterableResult results = handle.queryIterable(queryRequest)) {
             System.out.println("Query results:");
             for (MapValue res : results) {
                System.out.println("\t" + res);
             }
          }
    }

    /* fetching rows using left outer joins*/
    String sql_stmt_loj ="SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo";
    System.out.println("Fetching data using Left outer joins:");
    fetchRows(handle,sql_stmt_loj);

To execute your query use the `borneo.NoSQLHandle.query()` method.

Download the full code TableJoins.py from the examples here.

    # Fetch data from the table based on joins
    def fetch_data(handle,sqlstmt):
       request = QueryRequest().set_statement(sqlstmt)
       print('Query results for: ' + sqlstmt)
       result = handle.query(request)
       for r in result.get_results():
          print('\t' + str(r))

    sql_stmt_loj='SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo'
    print('Fetching data using Left Outer Joins ')
    fetch_data(handle,sql_stmt_loj)

To execute a query use the `Client.Query` function.

Download the full code TableJoins.go from the examples here.

    func fetchData(client *nosqldb.Client, err error,
                   tableName string, querystmt string)(){
       prepReq := &nosqldb.PrepareRequest{ Statement: querystmt,}

       prepRes, err := client.Prepare(prepReq)
       if err != nil {
          fmt.Printf("Prepare failed: %v\n", err)
          return
       }

       queryReq := &nosqldb.QueryRequest{
    		 PreparedStatement: &prepRes.PreparedStatement,}
       var results []*types.MapValue

       for {
          queryRes, err := client.Query(queryReq)
          if err != nil {
             fmt.Printf("Query failed: %v\n", err)
    	  return
          }
          res, err := queryRes.GetResults()

          if err != nil {
             fmt.Printf("GetResults() failed: %v\n", err)
      	return
          }

          results = append(results, res...)
          if queryReq.IsDone() {
             break
          }
       }
       for i, r := range results {
          fmt.Printf("\t%d: %s\n", i+1,
                      jsonutil.AsJSON(r.Map()))
       }
    }

    querystmt_loj:= "SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo"
    fmt.Println("Fetching data using Left Outer Joins")
    fetchData(client, err,querystmt_loj)

To execute a query use `query` method.

JavaScript: Download the full code TableJoins.js from the examples here.

    //fetches data from the table
    async function fetchData(handle,querystmt) {
       const opt = {};
       try {
          do {
             const result = await handle.query(querystmt, opt);
             for(let row of result.rows) {
                console.log('  %O', row);
             }
             opt.continuationKey = result.continuationKey;
          } while(opt.continuationKey);
       } catch(error) {
          console.error('  Error: ' + error.message);
       }
    }

    const stmt_loj = 'SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo';
    console.log("Fetching data using Left Outer Joins");
    await fetchData(handle,stmt_loj);

TypeScript: Download the full code TableJoins.ts from the examples here.

    interface StreamInt {
       acct_Id: Integer;
       profile_name: String;
       account_expiry: TIMESTAMP;
       acct_data: JSON;
    }

    /* fetches data from the table */
    async function fetchData(handle: NoSQLClient,querystmt: string) {
       const opt = {};
       try {
          do {
             const result = await handle.query<StreamInt>(querystmt, opt);
             for(let row of result.rows) {
                console.log('  %O', row);
             }
             opt.continuationKey = result.continuationKey;
          } while(opt.continuationKey);
       } catch(error) {
          console.error('  Error: ' + error.message);
       }
    }

    const stmt_loj = 'SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo';
    console.log("Fetching data using Left Outer Joins");
    await fetchData(handle,stmt_loj);

To execute a query, you may call `QueryAsync` method or call `GetQueryAsyncEnumerable` method and iterate over the resulting async enumerable.

Download the full code TableJoins.cs from the examples here.

    private static async Task fetchData(NoSQLClient client,String querystmt){
       var queryEnumerable = client.GetQueryAsyncEnumerable(querystmt);
       await DoQuery(queryEnumerable);
    }

    private static async Task DoQuery(IAsyncEnumerable<QueryResult<RecordValue>> queryEnumerable){
       Console.WriteLine("  Query results:");
       await foreach (var result in queryEnumerable) {
          foreach (var row in result.Row
          {
             Console.WriteLine();
             Console.WriteLine(row.ToJsonString());
          }
       }
    }

    private const string stmt_loj ="SELECT * FROM ticket a LEFT OUTER JOIN ticket.bagInfo.flightLegs b ON a.ticketNo=b.ticketNo";
    Console.WriteLine("Fetching data using Left Outer Joins: ");
    await fetchData(client,stmt_loj);