resourceConnection->getConnection(); $select = $connection->select() ->from(['coupon' => $this->resourceConnection->getTableName('salesrule_coupon')], ['code']) ->joinInner( ['assignment' => $this->resourceConnection->getTableName('esun_customer_coupon')], 'assignment.coupon_id = coupon.coupon_id', ['customer_id'] ) ->where('coupon.code IN (?)', array_values($result)); $assigned = $connection->fetchPairs($select); foreach ($result as $ruleId => $code) { if (isset($assigned[$code]) && (!$customerId || (int)$assigned[$code] !== $customerId)) { unset($result[$ruleId]); } } return $result; } }