С Новым годом! Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для Jallik Bleach
15 / 15 / 5
Регистрация: 16.03.2013
Сообщений: 87

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане.
Вот такая возникла задача: база данных аеропорта. Три таблицы: 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2013, 07:04
Ответы с готовыми решениями:

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

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

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

1
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
14.06.2013, 00:54
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2013, 00:54
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru