Задавайте вопросы, мы ответим
Вы не зашли.
Опыта работы с запросами у меня нет, вот и прошу "добрых програмеров" помочь.
впринцепе вроде понимаю как должно все работать, никак не могу добавить вывод VOTE(оценку)
вот сам запрос
PHP код:
$query = "SELECT DISTINCT relation.itemid, relation.catid, title, hits, image, icon ".
// ", SUM(vote) / COUNT(*) AS votingResult" .
"FROM `#__sobi2_cat_items_relations` AS relation " .
"LEFT JOIN `#__sobi2_item` AS items ON relation.itemid = items.itemid " .
// "LEFT JOIN `#__sobi2_plugin_reviews` AS rev ON items.itemid = rev.itemid ".
"WHERE (`published` = '1' AND items.itemid IN({$query}) {$from_catid}) " .
"GROUP BY items.itemid ".
"ORDER BY {$orderBy} ".
"LIMIT {$limit}";
Закоментированые строки как видете - это я пытался к запросу добавить еще и оценку
а оно мне ошибку лупит
помогите плиз его правильно сделать
Неактивен
Если я правильно понял Ваш замысел, Вы хотите к существующему
запросу добавить таблицу голосов и выводить групповую статистику
по этой присоединенной таблице.
Чтобы сохранилась логика запроса при этом нужно группировать по
всем неаггрегированным полям. Ну и в данном случае, скорее всего,
писать не очень удачно, т.к. в изначальном запросе уже есть
группировка.
Неактивен
а как мне его сделать
мне надо будет потом вывести вот это:
$database->setQuery ( $query );
$results = $database->loadObjectList ();
$votes = number_format($results->votingResult,1);
помогите плиз
Неактивен
accent-rus написал:
а как мне его сделать
мне надо будет потом вывести вот это:
$database->setQuery ( $query );
$results = $database->loadObjectList ();
$votes = number_format($results->votingResult,1);
помогите плиз
ну и кромеэтого конечно еще другие поля
в зависимости от itemid
через foreach
Неактивен
с каждым днем люди стают все добрее и добрее, все так спешат друг другу помочь, что прям не успевают
Неактивен
$query = "(SELECT DISTINCT relation.itemid, relation.catid, items.published AS published, items.title AS title, items.hits AS hits, items.image AS image, items.icon AS icon ".
"FROM `#__sobi2_cat_items_relations` AS relation) " .
"UNION ALL".
"(SELECT DISTINCT SUM(rev.vote) / COUNT(*) AS votingResult ".
"FROM #__sobi2_plugin_reviews AS rev) ".
"LEFT JOIN `#__sobi2_item` AS items ON relation.itemid = items.itemid = rev.itemid " .
"WHERE (`published` = '1' AND items.itemid IN({$query}) {$from_catid}) " .
"GROUP BY items.itemid ".
"ORDER BY {$orderBy} ".
"LIMIT {$limit}";
попробовал так, тоже не работает
Неактивен
1. Без точного знания структуры таблиц запрос написать практически не реально.
2. Добавлять к существующему сложному запросу с группировкой еще одно
объединение и еще десяток группировок — не разумно: будет сильно тормозить.
Если хотите «легко» добавить дополнительное групповое поле — добавьте обычное
и обновляйте его триггерами или периодически.
Неактивен
я сделал отдельный запрос по итемИД и вроде все нормально работает
спасибо
Неактивен