







|
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
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`
:( может кто подскажет, пиво с меня легко. Замучался уже...
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
16438
|
|