code: def test_hash_join_with_one_on(self):
      select_query = """SELECT * FROM table1 JOIN
                          table2 ON table1.a1 = table2.a1;"""
      actual_batch = execute_query_fetch_all(self.evadb, select_query)
      expected = pd.merge(
          self.table1,
          self.table2,
          left_on=["table1.a1"],
          right_on=["table2.a1"],
          how="inner",
      )
      if len(expected):
          expected_batch = Batch(expected)
          self.assertEqual(
              expected_batch.sort_orderby(["table1.a2"]),
              actual_batch.sort_orderby(["table1.a2"]),
          )
  
imports: import unittest
  from test.util import create_dummy_4d_batches, create_dummy_batches, create_sample_video, create_table, file_remove, get_evadb_for_testing, get_logical_query_plan, load_functions_for_testing, shutdown_ray
  import numpy
  import pandas
  import pytest
  from evadb.binder.binder_utils import BinderError
  from evadb.models.storage.batch import Batch
  from evadb.optimizer.operators import LogicalFilter
  from evadb.server.command_handler import execute_query_fetch_all
label_desc: Use image node_id 26 for calling the SelectExecutorTest obj's underlying member method code with example usage: obj.test_hash_join_with_one_on() without return types