За последние 24 часа нас посетили 18943 программиста и 1615 роботов. Сейчас ищут 706 программистов ...

Запрос с объединением

Тема в разделе "MySQL", создана пользователем ShamahN, 24 сен 2009.

  1. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Час бьюсь, не могу понять
    Есть 3 таблицы, одна с элементами:
    Код (Text):
    1. items (id, ....)
    с характеристиками
    Код (Text):
    1. chars (id, ...)
    и с характеристиками элементов
    Код (Text):
    1. item_chars (id_item, id_char, value)
    Собственно ничего сложного, нужно чтобы в результате запроса я получил объединение элементов и характеристик (т.е. каждому элементу была сопоставлена каждая характеристика), и значения характеристик, в тех строчках где они есть

    Запрос:
    Код (Text):
    1. SELECT
    2. items.id AS item_id,
    3. items.name,
    4. chars.id AS char_id
    5. FROM
    6. items ,
    7. chars
    8. Inner Join item_chars ON item_chars.item_id = items.id AND item_chars.char_id = chars.id
    Выдает какую-то ошибку, что неопределено поле items.id

    В общем, буду рад помощи
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    попробуй item_id
     
  3. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    пробовал, он его воспринимает ни как алиас, а как значение.. или.. в общем не то получается(
     
  4. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    есть! ты гений)))
     
  5. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    в общем, окончательный вариант и тему можно закрывать. Спс, Kreker. Видимо когда я пробовал, что-то упустил
    Код (Text):
    1.  
    2. SELECT
    3. items.id AS item_id,
    4. items.name,
    5. chars.group_id,
    6. chars.id AS char_id,
    7. item_chars.value
    8. FROM
    9. items ,
    10. chars
    11. Left Join item_chars ON item_chars.item_id = item_chars.item_id AND item_chars.char_id = chars.id
    12. ORDER BY
    13. item_id ASC,
    14. chars.group_id ASC,
    15. char_id ASC
     
  6. kostyl

    kostyl Guest

    попробуй лучше с left join
     
  7. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    kostyl
    уже)
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это как? :)

    Left Join item_chars ON item_chars.item_id = item_id

    Так не работает?
    Лучше не делать алиасы эквивалентные именам полей.
     
  9. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    нифига, он характеристики первого элемента лепит всем(
     
  10. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Да. это навикат наумничал. Я не стал заморачиваться с этим запросом. Он все равно бы сложный получился и напряжный для мускула, всетаки объединение.
    Сделал 2е выборочки, но маленькие и все пыхом оформил, в общем, получилось лучше чем ожидал)
    Спс за участие