Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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



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);


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
34258



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |