code: public void copyTables(String datasetId, String destinationTableId) throws InterruptedException {
      generateTableWithDdl(datasetId, "table1");
      generateTableWithDdl(datasetId, "table2");
  
      // [START bigquery_copy_table_multiple_source]
      TableId destinationTable = TableId.of(datasetId, destinationTableId);
      CopyJobConfiguration configuration =
          CopyJobConfiguration.newBuilder(
                  destinationTable,
                  Arrays.asList(TableId.of(datasetId, "table1"), TableId.of(datasetId, "table2")))
              .build();
  
      // Copy the tables.
      Job job = bigquery.create(JobInfo.of(configuration));
      job = job.waitFor();
  
      // Check the table
      StandardTableDefinition table = bigquery.getTable(destinationTable).getDefinition();
      System.out.println("State: " + job.getStatus().getState());
      System.out.printf("Copied %d rows.\n", table.getNumRows());
      // [END bigquery_copy_table_multiple_source]
    }
docs: Example of copying multiple tables to a destination.