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




MySQL.RU - Webboard



Вернуться
Что-то не то с запросом... (loto) 02/08/2004 - 15:48:59
      Re: Что-то не то с запросом... (Роберт) 02/08/2004 - 16:08:06
      Re: нифига... (loto) 02/08/2004 - 16:20:06
      Re: Всё работает. (Роберт) 02/08/2004 - 16:38:29
      Re: Всё работает. (loto) 02/08/2004 - 17:14:27
      Re: Всё работает. Перепроверил! (Роберт) 02/08/2004 - 17:24:52
      Re: не-а...:) (loto) 02/08/2004 - 17:32:38
      Re: не-а...:) (Роберт) 02/08/2004 - 17:46:19
      Re: не-а...:) (loto) 02/08/2004 - 17:50:07
      Re: все! (loto) 02/08/2004 - 17:53:45
      Re: Разумеется! (Роберт) 02/08/2004 - 18:11:18

> Original message text:
> From: loto - 02/08/2004 - 15:48:59
> Subject:Что-то не то с запросом...
> -----------------
> Народ, кому не лень подскажите с запросом. Я знаю, что он не правильный, а как сделать его верным ... :(
>
> Идея такая. Есть записи(rid) которые принадлежат какой-то отдельной категории(cid), у каждой категории есть критерии (fid), у каждой записи есть соотвественно эти критерии, и для каждой записи есть свои значения (vid)
>
>
> Есть три таблицы
> =`base_records`
> `rid` id записи
> `uid` id пользователя добавишего запись
> `cid` id категории которой принаджелжит запись
> `type` enum('подтвержденная', 'не подтвержденная')
>
> =`base_fields`
> `fid` id поля(критерия)
> `cid` id категории
> `caption` название критерия
> `type` enum тип, текстовое поле, область текста, select
> `view` enum видно только админу, не видно пользователю
> `search` можно искать по этому полю
> `def_value` значение по умолчанию, или набор значений для select
> `pos` порядковый номер
>
> =`base_values`
> `vid` id значения
> `rid` id записи
> `fid` id критерия
> `value` значение.
>
> НУЖНО. выбрать все записи для категории cid=1(например) одним запросом, желательно. На выходе нужно
>
> `r`.`rid`,
> `f`.`fid`,
> `v`.`vid`,
> `f`.`caption`,
> `f`.`type`,
> `f`.`view`,
> `f`.`search`,
> `f`.`def_value`,
> `v`.`value`
>
> Делаю так, но это не правильно :\ Дубликаты одни.
>
> SELECT
> `r`.`rid`,
> `f`.`fid`,
> `v`.`vid`,
> `f`.`caption`,
> `f`.`type`,
> `f`.`view`,
> `f`.`search`,
> `f`.`def_value`,
> `v`.`value`
> FROM
> `base_records` AS `r`,
> `base_fields` AS `f`,
> `base_values` AS `v`
> WHERE
> `r`.`cid` = 1 AND
> `f`.`cid` = `r`.`cid` AND
> `v`.`fid` = `f`.`fid`
> GROUP BY
> `v`.`vid`,
> `r`.`rid`,
> `f`.`fid`
> ORDER BY
> `r`.`rid`,
> `f`.`pos`
>
> :( может кто подскажет, пиво с меня легко. Замучался уже...
>


From: loto - 02/08/2004 - 16:20:06
Subject:нифига...
-----------------
Запрос не то чтобы не отрабатывает из-за ошибки в синтаксисе, а результат отличный от желаемого :(

Дамп. Типа такого.
#
# Structure for the `base_values` table :
#

CREATE TABLE `base_values` (
`vid` int(11) unsigned NOT NULL auto_increment,
`rid` int(11) unsigned default NULL,
`fid` int(11) unsigned NOT NULL default '0',
`value` text,
PRIMARY KEY (`vid`),
UNIQUE KEY `vid` (`vid`)
) TYPE=MyISAM;

#
# Structure for the `base_records` table :
#

CREATE TABLE `base_records` (
`rid` int(11) unsigned NOT NULL auto_increment,
`uid` int(11) unsigned NOT NULL default '0',
`cid` int(11) unsigned NOT NULL default '0',
`type` enum('verify','active') NOT NULL default 'verify',
PRIMARY KEY (`rid`),
UNIQUE KEY `rid` (`rid`)
) TYPE=MyISAM;

#
# Structure for the `base_fields` table :
#

CREATE TABLE `base_fields` (
`fid` int(11) unsigned NOT NULL auto_increment,
`cid` smallint(4) unsigned NOT NULL default '0',
`caption` varchar(50) NOT NULL default '',
`type` enum('text','text_area','editor','check','select','file') NOT NULL default 'text',
`view` enum('backoffice','frontoffice','preview') default 'backoffice',
`search` enum('true','false') default 'true',
`def_value` varchar(255) default NULL,
`pos` tinyint(4) unsigned default NULL,
PRIMARY KEY (`fid`),
UNIQUE KEY `fid` (`fid`)
) TYPE=MyISAM;
INSERT INTO `base_values` (`vid`, `rid`, `fid`, `value`) VALUES
(1,4,2,'Мсоква'),
(2,4,3,'Строителей'),
(3,4,1,'Россия'),
(4,4,4,'37'),
(5,4,8,'61111'),
(6,4,9,'0'),
(7,5,2,'Мсоква'),
(8,5,3,'Лененский'),
(9,5,1,'Россия'),
(10,5,4,'9'),
(11,5,8,'32'),
(12,5,9,'0');

COMMIT;

#
# Data for the `base_records` table (LIMIT 0,500)
#

INSERT INTO `base_records` (`rid`, `uid`, `cid`, `type`) VALUES
(4,1,302,'active'),
(5,1,302,'active');

COMMIT;

#
# Data for the `base_fields` table (LIMIT 0,500)
#

INSERT INTO `base_fields` (`fid`, `cid`, `caption`, `type`, `view`, `search`, `def_value`, `pos`) VALUES
(1,302,'Адрес, Страна.','text','preview','true','Россия',3),
(2,302,'Адрес, Город.','text','frontoffice','true','Ухта',1),
(3,302,'Адрес, Улица.','text','preview','true','',2),
(4,302,'Адрес, Дом.','text','frontoffice','true','',4),
(8,302,'Адрес, Квартира','text','preview','true','',5),
(9,302,'Тип операции','select','frontoffice','true','продажа;обмен;покупка',6);

COMMIT;



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

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

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



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