За последние 24 часа нас посетили 32679 программистов и 1759 роботов. Сейчас ищут 890 программистов ...

Вопрос про склейку таблиц

Тема в разделе "MySQL", создана пользователем link00, 24 июл 2013.

  1. link00

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

    С нами с:
    1 сен 2012
    Сообщения:
    65
    Симпатии:
    0
    Изначально была задача: отсортировать одну таблицу по полю другой

    Есть 2-е таблицы(см ниже). Нужно: вывести ВСЕ записи таблицы 'apartments', рассортировав ее по полю 'order' таблицы 'area'

    area // районы
    id | order | area
    1 | 1 | 1-й микр-н
    4 | 2 | ул. Шамшина
    5 | 3 | 2-й микр-н

    apartments // квартиры
    id | area_id
    1 | 4
    2 | 1
    3 | 5
    4 | 1

    Запрос 'SELECT apartments.*,area.* FROM apartments,area WHERE apartments.area_id=area.id ORDER BY area.order ASC'
    В данном случае идеально работает - то что нужно, приклеивает поля от таблицы area, и сортирует. Но... результат выглядет так


    id | area_id | order | area
    1 | 1 | 1 | 1-й микр-н
    1 | 1 | 1 | 1-й микр-н
    4 | 4 | 2 | ул. Шамшина
    5 | 5 | 3 | 2-й микр-н

    id той таблицы которую выводим потерялся.. а он нужен (речь о apartments.id). Как можно сделать так чтобы он остался?
     
  2. shelestov

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

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Либо перечислитрь все поля за исключением id из таблицы area, либо присвоить алиас для apartments: select apartments.id as apartments_id.
    В данном случае у вас просто перезаписывается одно из полей, т.к. они имеют одинаковые названия.
     
  3. link00

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

    С нами с:
    1 сен 2012
    Сообщения:
    65
    Симпатии:
    0
    Благодарствую, работает