1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Вопросы При Объединений Таблиц

Тема в разделе "Базы данных и администрирование", создана пользователем Andronis, 5 фев 2012.

  1. Andronis

    Andronis Гость

    Репутация:
    0
    Здравствуйте, уважаемые! Подскажите пожалуйста с выполнением запросов:
    есть база
    Вопросы При Объединений Таблиц
    Необходимо найти названия всех маршрутов с указанием общего количества пассажиров, по каждому маршруту?
    Как я делаю, я выбираю через левое внешнее объединение все маршруты и получается, что в одной базе результирующая таблица получается правильной, количество пассажиров верное, а в другой, где я не могу просмотреть данные, выбирает более меньшее количество и не правильные маршруты?
    Вот сам мой запрос:
    Код:
    select r.name_route, 
    sum (m.places) as people 
    from routes r
    left outer join trips t on (r.cod_route = t.cod_route)
    left outer join buses b on (t.cod_bus = b.cod_bus)
    left outer join models m on (b.cod_model = m.cod_model)
    group by r.name_route
    Если выполняю запрос через полное объединение то результирующая таблица выводится правильно с одним но, появляется нулевая строка в поле name_route, которую убираю where r.name_route is not null и в результате получается, что запрос возвращает не правильные записи. Вот пример запроса:

    Код:
    select r.name_route, 
    sum (m.places) as people
    from routes r 
    full join trips t on (r.cod_route = t.cod_route)
    full join buses b on (t.cod_bus = b.cod_bus)
    full join models m on (b.cod_model = m.cod_model)
    where r.name_route is not null
    group by r.name_route
    и второй вопрос как правильно объединить вот эти два запроса в один, смысл в том чтобы вывести весь список из таблицы routes, если даже нет значений, там должен быть null, и те значения которые есть во второй части запроса?
    Код:
    select r.name_route, 
    t.cod_trip 
    from routes r
    left outer join trips t on (r.cod_route = t.cod_route)
    Код:
    select r.name_route, 
    count (t.cod_trip) 
    from trips t
    inner join routes r on (r.cod_route = t.cod_route) 
    where t.week_day between 6 and 7
    group by r.name_route
     
  2. -master-

    -master- Well-Known Member

    Репутация:
    0
    Регистрация:
    14 янв 2012
    Сообщения:
    616
    Симпатии:
    20
    1. Тут надо делать inner, left тут ни с какого боку.

    Добавлено: Второй вопрос не понял, что к чему... первый селект понятен, а чтоделаетвторой и на кой он нужен ..?
     
  3. batman1980

    batman1980 Гость

    Репутация:
    0
    Отлично
     
Загрузка...

Поделиться этой страницей