get('entityManager'); $this->populateOpportunityContactId($entityManager); } protected function populateOpportunityContactId($entityManager) { $pdo = $entityManager->getPdo(); $sql = " SELECT opportunity.id AS 'opportunityId', contact.id AS `contactId` FROM `opportunity` JOIN contact_opportunity ON contact_opportunity.opportunity_id = opportunity.id AND contact_opportunity.deleted = 0 JOIN contact ON contact.id = contact_opportunity.contact_id AND contact.deleted = 0 WHERE contact.id IN ( SELECT MIN(contact.id) FROM `opportunity` JOIN contact_opportunity ON contact_opportunity.opportunity_id = opportunity.id AND contact_opportunity.deleted = 0 JOIN contact ON contact.id = contact_opportunity.contact_id AND contact.deleted = 0 GROUP BY opportunity.id ) AND opportunity.contact_id IS NULL AND opportunity.deleted = 0 "; $sth = $pdo->prepare($sql); $sth->execute(); while ($row = $sth->fetch()) { $cId = $row['contactId'] ?? null; $oId = $row['opportunityId'] ?? null; if (!$cId || !$oId) continue; $q = " UPDATE `opportunity` SET contact_id = ".$pdo->quote($cId)." WHERE id = ".$pdo->quote($oId)." "; $pdo->query($q); } } }