code: def lookupjoin(left, right, key=None, lkey=None, rkey=None, missing=None,
                 presorted=False, buffersize=None, tempdir=None, cache=True,
                 lprefix=None, rprefix=None):
      
  
      lkey, rkey = keys_from_args(left, right, key, lkey, rkey)
      return LookupJoinView(left, right, lkey, rkey, presorted=presorted,
                            missing=missing, buffersize=buffersize,
                            tempdir=tempdir, cache=cache,
                            lprefix=lprefix, rprefix=rprefix)
docs: Perform a left join, but where the key is not unique in the right-hand
      table, arbitrarily choose the first row and ignore others. E.g.::
  
          >>> import petl as etl
          >>> table1 = [['id', 'color', 'cost'],
          ...           [1, 'blue', 12],
          ...           [2, 'red', 8],
          ...           [3, 'purple', 4]]
          >>> table2 = [['id', 'shape', 'size'],
          ...           [1, 'circle', 'big'],
          ...           [1, 'circle', 'small'],
          ...           [2, 'square', 'tiny'],
          ...           [2, 'square', 'big'],
          ...           [3, 'ellipse', 'small'],
          ...           [3, 'ellipse', 'tiny']]
          >>> table3 = etl.lookupjoin(table1, table2, key='id')
          >>> table3
          +----+----------+------+-----------+---------+
          | id | color    | cost | shape     | size    |
          +====+==========+======+===========+=========+
          |  1 | 'blue'   |   12 | 'circle'  | 'big'   |
          +----+----------+------+-----------+---------+
          |  2 | 'red'    |    8 | 'square'  | 'tiny'  |
          +----+----------+------+-----------+---------+
          |  3 | 'purple' |    4 | 'ellipse' | 'small' |
          +----+----------+------+-----------+---------+
  
      See also :func:`petl.transform.joins.leftjoin`.