|
MySQL.RU - Webboard
Вернуться
Помогите со сложным SQL-запросом с вложенными (Руслан) 21/03/2007 - 19:19:03
Re: Помогите со сложным SQL-запросом с вложенными (AXAE) 21/03/2007 - 21:14:59
> Original message text:
> From: Руслан - 21/03/2007 - 19:19:03
> Subject:Помогите со сложным SQL-запросом с вложенными
> -----------------
> У меня 4 таблицы, примерно такой структуры
>
> 1. Objects
> kod_obj | name_obj
> 01 квартира
> 02 дом
> 03 оффис
>
> 2. characteristics
> kod_char | name_char | type_value
> 01 кол комнат константа
> 02 состояние список
> 03 стоимость константа
> 04 тип стен список
>
> 3. Obj_Har (принадлежность хириктеристик объектам)
> kod_obj | kod_char | value
> 01 01 4
> 01 02 хорошее
> 02 03 22000
> 02 01 2
>
> 4. char_values
> kod_char | values
> 02 хорошее
> 02 удовлетв
> 02 снос
> 04 кирпич
> 04 монолит
>
> Я никак не могу написать SQL запрос для поиска удовлетворяющего запросу объекта
> например найти след. объект:
> квартира, кол комнат=2, состояние=хорошее, стоимость=1000, тип стен=кирпич
>
> Благодарю всех за ответы!
>
From: AXAE - 21/03/2007 - 21:14:59
Subject:Помогите со сложным SQL-запросом с вложенными
-----------------
Здесь не нужны вложенные запросы
Просто нарисуй что-то вроде
SELECT * FROM <Твои таблицы, связанные через INNER JOIN>
WHERE квартира
AND кол комнат=2
AND состояние=хорошее
AND стоимость=1000
AND тип стен=кирпич
Если не очень понимаешь, что значит связанные через INNER JOIN, то можешь после FROM перечислить таблицы через запятую, а в выражении после WHERE дополнительно через AND добавить соответствия своих таблиц (ну типа например пара из таких выражений я так понял будет characteristics.kod_char=char_values.kod_char AND Objects.kod_obj=Obj_Har.kod_obj)
Полюбуйся в SQL-билдере на результат... А потом поставь в запросе перед SELECT слово EXPLAIN и запусти запрос еще раз... И вновь оцени результат - везде ли есть нужные индексы :-D
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
31070
|
|