Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
15 / 15 / 5
Регистрация: 16.03.2013
Сообщений: 87
1

Запрос на выборку с трех таблиц. Кто профи?)

13.06.2013, 07:04. Показов 1032. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, форумчане.
Вот такая возникла задача: база данных аеропорта. Три таблицы: countries (id, country), ports (id, country_id, name) и lines (id, p_from_id, p_to_id, out_date....)

Кликните здесь для просмотра всего текста
countries
id country
1 Россия
2 Украина

ports
id country_id name
1 1 Москва
2 1 Екатеринбург
3 2 Киев

lines
id p_from_id p_to_id out_date ...
1 1 2 2013-06-08 18:00:00 ...
2 1 3 2013-06-08 18:00:00 ...
3 3 2 2013-06-08 18:00:00 ...


1. Необходимо в результате запроса получить таблицу со странами вылета и прилета

Кликните здесь для просмотра всего текста
p_from_id (country) f_to_id (country)
Россия Россия
Россия Украина
Украина Россия

P. S. Если пара совпадает (например Москва - Киев, Екатиренбург - Киев), то в таблице-результате должна быть одна строка Россия - Украина


2. В результате запроса получить таблицу с портами вылета и прилета

Кликните здесь для просмотра всего текста
p_from_id (port) p_to_id (port)
Москва Екатиренбург
Москва Киев
Киев Екатиренбург

P. S. Здесь совпадения заменять не надо (они могут отличаться временем вылета, стоимостью билета и т. п.)


Может я неправильно спроектировал таблицы, поэтому у меня все так сложно... Помоги пожалуйста.

P. S. Не забываю нажать "Спасибо"

Добавлено через 1 час 54 минуты
Второй вопрос получилось решить

Во первых, таблицу lines перейменовал в avialines (походу ключевое слово)

Запрос:
SQL
1
2
3
4
SELECT avialines.*, p_from.name AS from_name, p_to.name AS to_name 
        FROM avialines
    LEFT JOIN ports AS p_from ON p_from.id=avialines.p_from_id
    LEFT JOIN ports AS p_to ON p_to.id=avialines.p_to_id
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2013, 07:04
Ответы с готовыми решениями:

Запрос на выборку суммы из трех таблиц
Народ задачка не из легких по крайне мере для меня. Есть 3 таблицы с полями (я напишу примером)...

Запрос на выборку из трёх связанных таблиц
Кто может схематично изобразить запрос на выборку из трёх связанных таблиц? код программы чисто...

Сформировать запрос на выборку из трёх связанных таблиц
Всем доброго времени суток! У меня возникла проблема при формировании запроса на выборку из трёх...

Запрос на выборку из трех таблиц используя JOIN
Доброго вечера! Помогите решить проблемку В базе есть 3 таблицы - PROD, VID, SRAV PROD...

1
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
14.06.2013, 00:54 2
T-SQL
1
2
3
4
5
6
7
8
9
10
select distinct cf.country, ct.country
from lines l
join 
  ports pf 
  join countries cf on cf.id=pf.country_id
  on pf.id=l.p_from_id
join
  ports pt
  join countries ct on ct.id=pt.country_id
  on pt.id=l.p_to_id;
T-SQL
1
2
3
4
5
6
7
8
9
10
;
with country as (
  select p.id, c.country
  from ports p
  join countries c on c.id=p.contry_id )
select f.country,t.country
from lines l
join country f on f.id=l.p_from_id
join country t on t.id=l.p_to_id
group by f.country,t.country;
T-SQL
1
2
3
4
5
6
7
8
9
10
select 
  (select /*top(1)*/ country from countries where id=cif) [from],
  (select /*top(1)*/ country from countries where id=cit) [to]
from (
   select f.country_id cif, p.country_id cit
   from lines l
   join ports f on f.id=l.p_from_id
   join ports t on t.id=l.p_to_id
   group by f.country_id, p.country_id
   ) c
1
14.06.2013, 00:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2013, 00:54
Помогаю со студенческими работами здесь

Запрос на выборку из 2х таблиц
Доброго времени суток! Столкнулся с проблемой в написании запроса MySQL. Существует 2 таблицы: ...

Запрос на выборку из нескольких таблиц
Добрый день,ребята. Помогите пожалуйста: почему выдает пустые значения и что и где надо...

1 запрос на выборку из разных таблиц
Есть проблема. if($a==1) { $sql = запрос }else{ $sql = другой } При другом 2-м запросе...

Запрос на выборку из нескольких таблиц
Сразу оговорюсь - перерыл весь форум и гугл. Есть много похожего, но ничего применительно к моей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru