original_string: public function join(
          $foreign_table,
          $master_field = null,
          $join_kind = null,
          $_foreign_alias = null,
          $relation = null
      ) {
          if (!$_foreign_alias) {
              $_foreign_alias = '_'.$foreign_table[0];
          }
          $_foreign_alias = $this->_unique($this->relations, $_foreign_alias);
  
          /** @type SQL_Relation $rel */
          $rel = $this->add('SQL_Relation', $_foreign_alias);
  
          return $this->relations[$_foreign_alias] = $rel
              ->set($foreign_table, $master_field, $join_kind, $relation);
      }
code: public function join(
          $foreign_table,
          $master_field = null,
          $join_kind = null,
          $_foreign_alias = null,
          $relation = null
      ) {
          if (!$_foreign_alias) {
              $_foreign_alias = '_'.$foreign_table[0];
          }
          $_foreign_alias = $this->_unique($this->relations, $_foreign_alias);
  
          /** @type SQL_Relation $rel */
          $rel = $this->add('SQL_Relation', $_foreign_alias);
  
          return $this->relations[$_foreign_alias] = $rel
              ->set($foreign_table, $master_field, $join_kind, $relation);
      }
code_tokens: public function join ( $ foreign_table , $ master_field = null , $ join_kind = null , $ _foreign_alias = null , $ relation = null ) { if ( ! $ _foreign_alias ) { $ _foreign_alias = '_' . $ foreign_table [ 0 ] ; } $ _foreign_alias = $ this -> _unique ( $ this -> relations , $ _foreign_alias ) ; /** @type SQL_Relation $rel */ $ rel = $ this -> add ( 'SQL_Relation' , $ _foreign_alias ) ; return $ this -> relations [ $ _foreign_alias ] = $ rel -> set ( $ foreign_table , $ master_field , $ join_kind , $ relation ) ; }
docstring: Constructs model from multiple tables.
  Queries will join tables, inserts, updates and deletes will be applied on both tables
docstring_tokens: Constructs model from multiple tables . Queries will join tables inserts updates and deletes will be applied on both tables