Выборка записей с одной таблицы по условию с друго

Добрый день. Расширяю компонент modExtra и столкнулся с Поиском по таблицам, а именно поиск по второй таблице, а вывод информации с первой (двухтабличный запрос(или как-то так)). Сейчас поиск работает по одной таблице(ту которую мы смотрим) но по мимо этого в некоторых таблицах мне нужен поиск с другой таблицы.

Вот SQL запрос который поидее должен выводить такой поиск

SELECT * 
FROM  `modx_driverlicense_licenses` 
WHERE  `names` = (  SELECT  `id` 
                                 FROM  `modx_driverlicense_notface` 
                                 WHERE  `modx_driverlicense_notface`.`name` LIKE  '%Коломи%' )
Вот php код

class DriverLicenseLicensesGetListProcessor extends modObjectGetListProcessor {
	public $objectType = 'DriverLicenseLicenses';
	public $classKey = 'DriverLicenseLicenses';
	public $defaultSortField = 'id';
	public $defaultSortDirection = 'DESC';
	
	
	public function prepareQueryBeforeCount(xPDOQuery $c) {
        $query = $this->getProperty('query');
        
        $c->where(array(
            'deleted' => 0,
            ));
        
        if (!empty($query)) {
            /*$c->andCondition(array(
                'number:LIKE' => '%'.$query.'%',
                'names:OR' => "SELECT  'id' 
                                 FROM  `modx_driverlicense_notface` 
                                 WHERE  `modx_driverlicense_notface`.`name` LIKE  '%".$query."%'"
            ));*/
            // Нужно вставить название своего объекта второй таблицы
    		$q = $this->$modx->newQuery('DriverLicenseNotface');
    		$q->select('id');
    		$q->where(array('name:LIKE' => '%'.$query.'%'));
    		$ids = array();
    		while($row = $q->fetch(PDO::FETCH_ASSOC)) {
    			$ids[] = $row['id'];
    		}		
    		if (!empty($ids)) {
    			$c->where(array(
    				'name:IN' => $ids
    			));
    		}
        }
        return $c;
    }
	
	
}
Выдает ошибку
Cannot access empty property in  line 28
Pavel
02 июня 2015, 14:38
modx.pro
845
0

Комментарии: 1

Наумов Алексей
02 июня 2015, 21:14
+1
Вам lefftJoin нужен тут, а не newQuery по всей видимости
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1