|
MySQL.RU - Webboard
Вернуться
сводные результаты по двум голосованиям (salo) 06/10/2008 - 16:40:07
Re: сводные результаты по двум голосованиям (Антон) 08/10/2008 - 14:33:29
Re: сводные результаты по двум голосованиям (salo) 08/10/2008 - 18:16:32
Re: сводные результаты по двум голосованиям (Антон) 09/10/2008 - 11:08:08
> Original message text:
> From: salo - 06/10/2008 - 16:40:07
> Subject:сводные результаты по двум голосованиям
> -----------------
> Привет.. чем дальше тем влезаю в дебри
>
> TABLE `jos_ukrpolls
> 1) голосование *Ваш сотовый оператор?* //id=1 // в ней 2 вопроса но может быть и больше
> 2) голосование *Ваш возраст?* - 2 вопроса // id=2
>
> Вася голосовал за *Возраст От 16 до 20* и ! *Билайн*
> Коля голосовал только за *МТС* !
>
> Необходимо получить сводные результаты по двум голосованиям и перечень вопросов вывести так
> типа:
> 1. Возраст От 16 до 20, оператор – Билайн = 1 пользователь (100 %) – это 2 вопроса за кот. Вася голосовал
> 2. Возраст От 16 до 20, оператор – МТС = 0 пользователей (0 %)
> 3. Возраст Свыше 20 лет, оператор – МТС = 0 пользователей (0 %)
> 4. Возраст Свыше 20 лет, оператор – Билайн = 0 пользователей (0 %)
> ------------------------
> это дебри в кот. я влез - попытка все свести к 1 запросу :)
> SELECT CONCAT_WS(', ',qq.`text`,p.`text`) AS optext , COUNT(u.user) as count,b.title , b.voters .
> FROM #__ukrpoll_data AS p
> JOIN #__ukrpoll_data AS qq
> INNER JOIN #__ukrpolls AS b ON b.id = u.pollid
> LEFT JOIN #__ukrpoll_users AS u ON (u.data_id IN (qq.id,p.id) )
> WHERE p.`text` != '' AND qq.`text` != '' AND p.pollid =1 AND qq.pollid =2
>
> GROUP BY p.id ,qq.id
> ORDER BY p.id ,qq.id
>
> Укажите путь ,пожалуйста - как бы работает но
> МТС (Коля ), От 16 до 20 (Вася) тоже дает результат - 1 пользователь, непойму как связать голосование по пользователям
> Спасибо
>
> Структура таблиц:
> -----------------------------------------------
> CREATE TABLE `jos_ukrpolls` (
> `id` int(11) unsigned NOT NULL auto_increment,
> `title` varchar(100) NOT NULL default '',
> `voters` int(9) NOT NULL default '0',
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM ;
>
>
> INSERT INTO `jos_ukrpolls` (`id`, `title`, `voters`) VALUES
> (1, 'Ваш возраст?', 1),
> (2, 'Ваш сотовый оператор?', 2);
>
> -----------------------------------------------
> CREATE TABLE `jos_ukrpoll_data` (
> `id` int(11) NOT NULL auto_increment,
> `pollid` int(11) NOT NULL default '0',
> `text` text NOT NULL,
> `hits` int(11) NOT NULL default '0',
> PRIMARY KEY (`id`),
> KEY `pollid` (`pollid`,`text`(1))
> ) ENGINE=MyISAM ;
>
> Где pollid = id (TABLE jos_ukrpolls)
>
> INSERT INTO `jos_ukrpoll_data` (`id`, `pollid`, `text`, `hits`) VALUES
> (1, 1, 'От 16 до 20', 1),
> (2, 1, 'Свыше 20 лет', 0),
> (3, 1, '', 0),
> (4, 1, '', 0),
> (5, 1, '', 0),
> (6, 1, '', 0),
> (7, 1, '', 0),
> (8, 1, '', 0),
> (9, 1, '', 0),
> (10, 1, '', 0),
> (11, 1, '', 0),
> (12, 1, '', 0),
> (13, 2, 'МТС', 1),
> (14, 2, 'Билайн', 1),
> (15, 2, '', 0),
> (16, 2, '', 0),
> (17, 2, '', 0),
> (18, 2, '', 0),
> (19, 2, '', 0),
> (20, 2, '', 0),
> (21, 2, '', 0),
> (22, 2, '', 0),
> (23, 2, '', 0),
> (24, 2, '', 0);
> -----------------------------------------------
> CREATE TABLE `jos_ukrpoll_users` (
> `id` int(11) NOT NULL auto_increment,
> `pollid` int(11) NOT NULL default '0',
> `user` int(11) NOT NULL default '0',
> `username` varchar(150) NOT NULL default '',
> `data_id` int(11) NOT NULL default '0',
> PRIMARY KEY (`id`),
> KEY `pollid` (`pollid`),
> KEY `user` (`user`),
> KEY `data_id` (`data_id`)
> ) ENGINE=MyISAM ;
>
> Где pollid = pollid (TABLE jos_ukrpoll_data) и data_id = id (TABLE jos_ukrpoll_data )
>
> INSERT INTO `jos_ukrpoll_users` (`id`, `pollid`, `user`, `username`, `data_id`) VALUES
> (1, 1, 62, 'Вася', 1),
> (2, 2, 62, 'Вася', 14),
> (3, 2, 63, 'Коля', 13);
>
From: Антон - 08/10/2008 - 14:33:29
Subject:сводные результаты по двум голосованиям
-----------------
JOIN #__ukrpoll_data AS qq
INNER JOIN #__ukrpolls AS b ON b.id = u.pollid
в этой строке указаны псевдонимы qq и b, а связь идет по b.id = u.pollid :(
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
34258
|
|