@spookyru

MODX запрос COUNT с связкой из таблиц через xpdo?

Здравствуйте. необходимо определить количество строк, через count, Когда я делаю напрямую запрос из phpmyadmin SELECT имяполя, COUNT(*) FROM таблица1, таблица2 WHERE таблица1.имяполя = таблица2.имяполя2 GROUP BY таблица1.имяполя ORDER BY COUNT(*) ASC - все прекрасно работает. выводит результат, где находит совпадение значений из таблицы 2 в таблице 1 и список составляет. все ок
Но, как это из modx? делаю так
$c = $modx->newQuery('КлассТаблицы1');
$c->select(array($modx->getSelectColumns('КлассТаблицы1', 'КлассТаблицы1','',array('имяполя')),$modx->getSelectColumns('КлассТаблицы2', 'КлассТаблицы2','',array('имяполя2')) ));
$c->select('имяполя, COUNT(*) ');
$c->leftJoin('КлассТаблицы2', 'КлассТаблицы2', array('КлассТаблицы1.имяполя= КлассТаблицы2.имяполя2'));
$c->groupby('КлассТаблицы1.имяполя');
$c->sortby('COUNT(*)','ASC');

- намертво виснет (в console). если не делать leftjoin, а делать по аналогии запроса в phpmyadmin - только через getSelectColumns и where, ругается, что нет column КлассТаблицы2.имяполя2
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
DarkRaven
@DarkRaven
разработка программного обеспечения
А кто вам мешает сделать так:
$query = $modx->prepare($sql);
	$modx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	
	try
	{
	    $query->execute($paramArray);
	    return $query->fetchAll(PDO::FETCH_ASSOC);
	}
	catch (PDOException $e) {
          //log exception
        }
, где $sql - Ваш SQL-запрос:
$sql = 'SELECT имяполя, COUNT(*) FROM ' . $modx->getTableName('КлассТаблицы1') . ' t1, ' . $modx->getTableName('КлассТаблицы2') . ' t2, WHERE t1.имяполя = t2.имяполя2 GROUP BY t1.имяполя ORDER BY COUNT(*) ASC ';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
CAPYBARA digital Самара
от 40 000 до 50 000 руб.
Dart Simple Санкт-Петербург
от 120 000 до 150 000 руб.
Soft Media Int. Пенза
от 125 000 до 225 000 руб.
19 авг. 2018, в 17:22
1000 руб./в час
19 авг. 2018, в 17:11
200000 руб./за проект
19 авг. 2018, в 12:12
40000 руб./в месяц