protected function generateNonVisitJoins($tableName, $tableNameToJoin, $index)
{
$logTable = $this->tables->getLogTable($tableName);
$logTableToJoin = $this->tables->getLogTable($tableNameToJoin);
$nonVisitJoin = sprintf("%s.%s = %s.%s", $logTableToJoin->getName(), $logTableToJoin->getColumnToJoinOnIdAction(), $tableName, $logTable->getColumnToJoinOnIdAction());
$altNonVisitJoin = sprintf("%s.%s = %s.%s", $tableName, $logTable->getColumnToJoinOnIdAction(), $logTableToJoin->getName(), $logTableToJoin->getColumnToJoinOnIdAction());
if ($index > 0 && $this->tables->hasAddedTableManually($tableName) && !$this->tables->hasJoinedTableManually($tableName, $nonVisitJoin) && !$this->tables->hasJoinedTableManually($tableName, $altNonVisitJoin)) {
$tableIndex = $this->tables->findIndexOfManuallyAddedTable($tableName);
$nonVisitJoin = '(' . $this->tables[$tableIndex]['joinOn'] . ' AND ' . $nonVisitJoin . ')';
unset($this->tables[$tableIndex]);
}
if (!isset($this->nonVisitJoins[$tableName])) {
$this->nonVisitJoins[$tableName] = array();
}
if (!isset($this->nonVisitJoins[$tableNameToJoin])) {
$this->nonVisitJoins[$tableNameToJoin] = array();
}
$this->nonVisitJoins[$tableName][$tableNameToJoin] = $nonVisitJoin;
$this->nonVisitJoins[$tableNameToJoin][$tableName] = $nonVisitJoin;
}