Почему SQL подзапрос изменяется сам

Главные вкладки

Аватар пользователя Frenk Frenk 24 февраля 2017 в 5:39

Здравствуйте, набросал запрос, который содержит в себе подзапрос

<?php
//Подзапрос, возвращающий количество голосов для ноды.
$subquery db_select('votingapi_cache','vac');
$subquery->fields('vac', array('value'));
$subquery->condition('vac.entity_id''n.nid''=');
$subquery->condition('vac.entity_type''node''=');
$subquery->condition('vac.tag''vote''=');
$subquery->condition('vac.function''count''=');

//Запрос, возвращающий список нод пользователя: заголовок, дата создания, кол-во голосов, рейтинг ноды.
$query db_select('node','n')->extend('PagerDefault')->extend('TableSort');
$query->innerJoin('votingapi_cache''vc''n.nid = vc.entity_id');
$query->addExpression('(' $subquery ')''count_votes'); //Внедряем подзапрос.
$query->addExpression('ROUND(vc.value * 5 / 100, 1)''rating');
$query->fields('n', array('title','created','nid'));
$query->condition('n.uid'$user->uid'=');
$query->condition('n.type''article''=');
$query->condition('vc.entity_type''node''=');
$query->condition('vc.function''average''=');
$query->condition('vc.tag''vote''=');
$query->limit(10);
$query->orderByHeader($header);
$result $query->execute()->fetchAll();
?>

Вроде бы все нормально, но Drupal каким-то непонятным мне образом подменяет значения в условиях подзапроса.
Смотрим что получилось:

<?php
dpq
($query);
?>

В итоге непонятным для меня образом в запросе появилось не то, что мне нужно. Господа, что за магия?
?

ВложениеРазмер
Иконка изображения screenshot_2.jpg44.08 КБ

Комментарии

Аватар пользователя Frenk Frenk 24 февраля 2017 в 14:33

Подзапрос нужен, так как в подзапросе и в запросе есть 2 противоречащих условия.

<?php
$subquery
->condition('vac.function''count''=');
?>
<?php
$query
->condition('vc.function''average''=');
?>