







|
MySQL.RU - Webboard
Вернуться
Запрос с объединением (Коломиец Максим) 24/09/2009 - 18:21:10
Re: Запрос с объединением (Diter) 27/09/2009 - 08:18:42
> Original message text:
> From: Коломиец Максим - 24/09/2009 - 18:21:10
> Subject:Запрос с объединением
> -----------------
> Подобную тему же создал еще на одном форуме, - потом подумал, что наверное здесь народ этом плане более натасканный:) так что, если что не судите.
> Суть23
> Есть 3 таблицы, одна с элементами:
> Код:
> items (id, ....)
>
> с характеристиками
> Код:
> chars (id, ...)
>
> и с характеристиками элементов
> Код:
> item_chars (id_item, id_char, value)
>
>
> Собственно ничего сложного, нужно чтобы в результате запроса я получил объединение элементов и характеристик (т.е. каждому элементу была сопоставлена каждая характеристика), и значения характеристик, в тех строчках где они есть
>
> Запрос:
> Код:
> SELECT
> items.id AS item_id,
> items.name,
> chars.id AS char_id
> FROM
> items ,
> chars
> Inner Join item_chars ON item_chars.item_id = items.id AND item_chars.char_id = chars.id
>
>
> Выдает какую-то ошибку, что неопределено поле items.id
>
> В общем, буду рад помощи
>
From: Diter - 27/09/2009 - 08:18:42
Subject:Запрос с объединением
-----------------
В следующий раз вместо "какой-то там ошибки" лучше скопируйте точную ошибку, которую выдает MySQL.
В Вашем запросе ошибки тут:
1) ... ON item_chars.item_id = ...
В таблице item_chars нет такого столбца - есть id_item.
2) ... AND item_chars.char_id = ...
В таблице item_chars нет такого столбца - есть id_char.
3) Если Вы используете JOIN, а в запросе есть несколько таблиц, то лучше их заключать в скобки, поскольку JOIN в MySQL 5.x имеет выше приоритет, нежели чем запятая.
http://dev.mysql.com/doc/refman/5.0/en/join.html
Поэтому итоговый запрос будет выглядеть так:
select items.id as item_id, items.name, chars.id as char_id
from (items, chars)
inner join item_chars
ON item_chars.id_item = items.id AND item_chars.id_char = chars.id
P.S.: если еще нужно items_chars.value, то это нужно указать в SELECT, хотя об этом, думаю, Вам известно. :)
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
36241
|
|