protected function deleteOrphanedUrls()
{
$dbHandler = $this->getConnection();
$query = $dbHandler->createSelectQuery();
$query->select($dbHandler->quoteColumn('id', self::URL_TABLE))->from($dbHandler->quoteTable(self::URL_TABLE))->leftJoin($dbHandler->quoteTable(self::URL_LINK_TABLE), $query->expr->eq($dbHandler->quoteColumn('url_id', self::URL_LINK_TABLE), $dbHandler->quoteColumn('id', self::URL_TABLE)))->where($query->expr->isNull($dbHandler->quoteColumn('url_id', self::URL_LINK_TABLE)));
$statement = $query->prepare();
$statement->execute();
$ids = $statement->fetchAll(PDO::FETCH_COLUMN);
if (empty($ids)) {
return;
}
$deleteQuery = $dbHandler->createDeleteQuery();
$deleteQuery->deleteFrom($dbHandler->quoteTable(self::URL_TABLE))->where($deleteQuery->expr->in($dbHandler->quoteColumn('id'), $ids));
$deleteQuery->prepare()->execute();
}