This should do it:
$gs_relations = new GSRelations();
$part = $gs_relations->select()->from('gs_relations','subscriber_id')->where('group_id = ?',$group_id);
$select = $this->select()->setIntegrityCheck(false);
$select->from('subscribers')->where('id in (' . $part->__toString() . ')');
return $select;
print_r($select->__toString());
Output:
SELECT `subscribers`.* FROM `subscribers` WHERE (id in (SELECT `gs_relations`.`subscriber_id` FROM `gs_relations` WHERE (group_id = 55)))
Let me know how this happens, I used the code below for testing, but did not test the execution of the actual request, since I do not have such data structures:
$groupId = 55;
$part = $this->db->select()->from('gs_relations','subscriber_id')->where('group_id = ?',$groupId);
$select = $this->db->select()->from('subscribers')->where('id in (' . $part->__toString() . ')');
print_r($select->__toString());
source
share