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




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36241



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