Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510

Одну таблицу представить как две

03.04.2014, 12:53. Показов 1317. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Имеются три следующих таблицы:

Общая таблица участников - хранится ФИО, телефон, и так далее
Таблица пар - в ней находится номер первого/второго участника(=код из общей таблицы участников), название пары
Пары - Жеребьевочный номер, номер пары (=код из таблицы команд), баллы

Задача в том, чтобы получить из таблицы команд следующую таблицу (будем считать, что команда состоит из двух человек):

|ФИО 1-ого члена пары|ФИО 2-ого члена пары|Название пары|Номер первого выступления|

Возникла следующая проблема: как в одном запросе получить два разных имени? Т. е. я понимаю, как получить такую таблицу:
|ФИО 1-ого члена пары|Название пары|Номер первого выступления|
но не знаю, как получить в ней второе имя.
Не могли бы вы подсказать - как это сделать?

Заранее благодарен,
proggamer12.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2014, 12:53
Ответы с готовыми решениями:

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

Windows Forms Как лучше представить таблицу?
Здравствуйте! Мне нужно в приложении Windows Forms представить результат работы программы в виде небольшой табличке, содержащей 2...

Как лучше представить таблицу в виде двумерного списка
Доброго времени суток. Смоделировать таблицу с помощью двумерного списка можно двумя способами: 1) Первый индекс будет как бы...

10
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.04.2014, 13:06
Лучший ответ Сообщение было отмечено proggamer12 как решение

Решение

Надо использовать логическую копию таблицы участников, связывая каждую копию с таблицей пар
SQL
1
2
3
4
SELECT Пары.[Номер пары], t1.ФИО, t2.ФИО, Пары.[Название пары], Пары.[Номер первого выступления]
FROM Пары, Участники t1, Участники t2,
Пары INNER JOIN Участники t1 ON Пары.КодУчастника=t1.КодУчастника,
Пары INNER JOIN Участники t2 ON Пары.КодУчастника=t2.КодУчастника

Не по теме:

Если связывание иднт по ФИО участника, то это плохо. Хотя бы потому что могут быть полные тезки. Лучше (гораздо лучше!!!) использовать числовой код. Прекрасно для этого подходит счетчик в т. участников

1
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 13:11  [ТС]
Связывание осуществляется так:
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 13:13  [ТС]
Вот так:
Миниатюры
Одну таблицу представить как две  
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.04.2014, 13:18
Цитата Сообщение от proggamer12 Посмотреть сообщение
Связывание осуществляется так:
Я уже говорил об этом - надо добавить логическую копию таблицы участников. И на схему данных, и в запрос. В форме, показанной на рисунке, связывание бессмысленно -не может одно и то же поле иметь 2 значения одновременно.
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 13:20  [ТС]
P. S. в вашем запросе Пары и Таблица пар - одно и то же поле, хотя это не так
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 13:31  [ТС]
И еще одно для полной работы программы: как исправить запрос, чтобы не было такого?
Миниатюры
Одну таблицу представить как две  
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 13:50  [ТС]
Запрос слегка переделал: (команда называется смешанной парой, а таблица команд - таблицей пар)
SQL
1
2
3
4
SELECT [Смешанные пары].[Номер пары], t1.Фамилия, t2.Фамилия, [Таблица пар].[Название пары], [Смешанные пары].[Номер первого выступления]
FROM [Смешанные пары],[Таблица пар], [Общая таблица участников] t1, [Общая таблица участников] t2,
[Таблица пар] INNER JOIN [Общая таблица участников] t1 ON [Таблица пар].[Общий номер 1-ого участника(цы)]=t1.Код,
[Таблица пар] INNER JOIN [Общая таблица участников] t2 ON [Таблица пар].[Общий номер 2-ого участника(цы)]=t2.Код
Добавлено через 12 минут
Помогите, пожалуйста

Добавлено через 5 минут
Разобрался
Спасибо за помощь!

SQL
1
2
3
4
5
SELECT [Смешанные пары].[Номер пары], t1.Фамилия + " " +t1.Имя AS Первый, t2.Фамилия + " " + t2.Имя AS Второй, [Таблица пар].[Название пары], [Смешанные пары].[Номер первого выступления]
FROM [Смешанные пары],[Таблица пар], [Общая таблица участников] t1, [Общая таблица участников] t2,
[Таблица пар] INNER JOIN [Общая таблица участников] t1 ON [Таблица пар].[Общий номер 1-ого участника(цы)]=t1.Код,
[Таблица пар] INNER JOIN [Общая таблица участников] t2 ON [Таблица пар].[Общий номер 2-ого участника(цы)]=t2.Код
WHERE [Смешанные пары].[Номер пары]=[Таблица пар].[Код]
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.04.2014, 13:52
Не хватает соединения смешанных пар с таблицей пар
SQL
1
2
3
4
5
SELECT [Смешанные пары].[Номер пары], t1.Фамилия, t2.Фамилия, [Таблица пар].[Название пары], [Смешанные пары].[Номер первого выступления]
FROM [Смешанные пары],[Таблица пар], [Общая таблица участников] t1, [Общая таблица участников] t2,
[Таблица пар] INNER JOIN [Общая таблица участников] t1 ON [Таблица пар].[Общий номер 1-ого участника(цы)]=t1.Код,
[Таблица пар] INNER JOIN [Общая таблица участников] t2 ON [Таблица пар].[Общий номер 2-ого участника(цы)]=t2.Код,
[Смешанные пары] INNER JOIN [Таблица пар] ON [Смешанные пары].[Код пары]=[Таблица пар].Код
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.04.2014, 14:16  [ТС]
И последний вопрос: как исправить то, что если один из общих номеров пуст, то исчезает вся строка?
Нельзя-ли сделать так, чтобы при пустом номере выводились все имена кроме того, которое связано с этим номером?
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.04.2014, 15:46
Цитата Сообщение от proggamer12 Посмотреть сообщение
Нельзя-ли сделать так, чтобы при пустом номере выводились все имена кроме того, которое связано с этим номером?
Надо заменить тип соединения. Вместо Inner Join применить Left Join, т.е. такое соединение при котором из главной таблицы выбираются все записи, а из подчиненных только те, которым есть соответствие
SELECT [Смешанные пары].[Номер пары], t1.Фамилия, t2.Фамилия, [Таблица пар].[Название пары], [Смешанные пары].[Номер первого выступления]
SQL
1
2
3
4
5
SELECT [Смешанные пары].[Номер пары], t1.Фамилия, t2.Фамилия, [Таблица пар].[Название пары], [Смешанные пары].[Номер первого выступления]
FROM [Смешанные пары],[Таблица пар], [Общая таблица участников] t1, [Общая таблица участников] t2,
[Таблица пар] LEFT JOIN [Общая таблица участников] t1 ON [Таблица пар].[Общий номер 1-ого участника(цы)]=t1.Код,
[Таблица пар] LEFT JOIN [Общая таблица участников] t2 ON [Таблица пар].[Общий номер 2-ого участника(цы)]=t2.Код,
[Таблица пар] LEFT JOIN [Смешанные пары] ON [Смешанные пары].[Код пары]=[Таблица пар].Код
Если вдруг не получится, то в конструкторе выберите все три таблицы+копию участников, соедините поля мышкой, а затем выделив соединительную линию, нажмите правую клавишу. В открывшемся окне выберите вариант "все из [Таблица пар]" во всех случаях
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2014, 15:46
Помогаю со студенческими работами здесь

Объединить две очереди в одну, как создать две очереди
"Объединить две очереди в одну, чередуя элементы первой и второй очереди. Основной вопрос как создать две очереди? точнее даже три, в...

Как объединить две транзакции в одну?
Доброго времени суток! Я тут изучаю JPA+EJB и столкнулся с проблемой. У меня есть 2 Stateless EJB (rкоторые используют JPA). Один...

Как соединить две переменные в одну
У меня вопрос, вот есть перменные arr1,arr2,arr3 etc. Так вот, как сделать чтобы через цикл for(i..., при вызове этой переменной arr+i,...

Как объединить две таблицы в одну ?
Ребята как объединить две таблицы в одну или больше. Есть две таблицы dolzhnosti и sotrydnic их объединят поле Nomer_Dolzhnosti.

Как соединить две строки в одну
Суть такова - есть 2е переменные, нужно склеить их в одну. Например Per1 = "Hello " Per2 = "World!" Нужно получить...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru