code: public function executeJoin(array $row, array $rowTable)
      {
          foreach ($this->where as $key => $value) {
              $columns = $value[ 'column' ];
              switch ($value[ 'type' ]) {
                  case 'where':
                  case 'isNull':
                      $val       = $this->isColumn($value[ 'value' ])
                          ? $rowTable[ substr(strrchr($value[ 'value' ], '.'), 1) ]
                          : $value[ 'value' ];
                      $predicate = self::predicate($row[ $columns ], $value[ 'condition' ], $val);
  
                      break;
                  case 'whereCallback':
                      $predicate = $value[ 'value' ]->execute($row);
  
                      break;
              }
  
              if ($key == 0) {
                  $output = $predicate;
              } elseif ($value[ 'bool' ] === 'and') {
                  $output &= $predicate;
              } else {
                  $output |= $predicate;
              }
          }
  
          return $output;
      }
docs: Retourne TRUE si la suite de condition enregistrée valide les champs du tableau
  par rapport à un autre tableau.
  
  @param array $row      Tableau associatif de champ.
  @param array $rowTable Tableau associatif de champ à tester.
  
  @return bool