







|
MySQL.RU - Webboard
Вернуться
помогиет составить запрос (Виктор) 18/02/2009 - 15:28:52
Re: помогиет составить запрос (pavel) 20/02/2009 - 11:53:40
Re: помогиет составить запрос (Виктор) 23/02/2009 - 12:20:28
Re: помогиет составить запрос (SAS) 24/02/2009 - 13:45:29
Re: помогиет составить запрос (SAS) 24/02/2009 - 14:00:30
Re: помогиет составить запрос (pavel) 02/03/2009 - 19:32:15
> Original message text:
> From: Виктор - 18/02/2009 - 15:28:52
> Subject:помогиет составить запрос
> -----------------
> Возник вот такой вопрос
>
> есть таблицы
> Object (ID, Name)
> Type (ID, Value)
> ObjectType (ID, ObjectID, TypeID)
>
> Соответственно в таблице Object хранится список объектов, в таблице Type типы объектов. Ну а в
>
> ObjectType храняться связки типов и объектов. Ну и соответственно таких связок может быть
>
> несколько, например тип строительства и тп.
>
> Возникла необходимость поиска по этим таблицам, но написать запрос что-то не получается,
>
> подскажите пожалуйста как составить запрос для поиска с типом?
> Ну или подскажите как хранить данные по другому, чтобы у объектов могло быть не ограниченное количество типов.
>
From: pavel - 20/02/2009 - 11:53:40
Subject:помогиет составить запрос
-----------------
"Поиска с типом" - уточните что нужно. Если нужно выбрать все объекты с указанным типом, то запрос будет такой
SELECT *
FROM `Object`, `Type`, `ObjectType`
WHERE (
`Object`.`ID` = `ObjectType`.`ObjectID`
AND `Type`.`ID` = `ObjectType`.`TypeID`
AND `Type`.`ID` = ТРЕБУЕМОЕ_ЗНАЧЕНИЕ_ТИПА
)
Для поиска по множеству типов:
SELECT *
FROM `Object`, `Type`, `ObjectType`
WHERE (
`Object`.`ID` = `ObjectType`.`ObjectID`
AND `Type`.`ID` = `ObjectType`.`TypeID`
AND `Type`.`ID` IN (ТРЕБУЕМОЕ_ЗНАЧЕНИЕ_ТИПА1, ТРЕБУЕМОЕ_ЗНАЧЕНИЕ_ТИПА2, ..., ТРЕБУЕМОЕ_ЗНАЧЕНИЕ_ТИПАN)
)
По поводу структуры: В таблице ObjectType нет необходимости в боле ID, т.к. индексировать по нему бессмысленно и никакой нагрузки оно не несет.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35078
|
|