|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
||||||
объединение нескольких таблиц с одной (JOIN)12.08.2013, 21:35. Показов 11974. Ответов 18
Метки нет (Все метки)
есть таблица
контакт(код, фио) с ней связаны три таблицы: телефон (код, номер, код контакта); емайл (код, адрес, код контакта); скайп (код, адрес, код контакта); при запросе номеров, емайлов и скайпов для одного контакта, результат получается как перебирание значений из каждой таблицы. например если каждая таблица (телефон скайа емайл) содержит записи: 1 2 3 то результат получиться приблизительно такой 1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 3 1 3 1 1 3 2 1 3 3 2 1 1 и т.д. всего 27 записей 3*3*3 и каждая уникальна (distinct'ы не помогают)
а мне нужно чтобы результат был приблизительно такой: 1 1 1 2 2 2 3 3 3 а в случае если телефонов больше чем емайлов и скайпов, то просто бы вставлялись пустые строки в соответствующие столбцы. уффф.... надеюсь понятно нарисовал ситуацию. помогите пожалуйста решить проблему.
0
|
||||||
| 12.08.2013, 21:35 | |
|
Ответы с готовыми решениями:
18
Объединение нескольких таблиц Объединение таблиц с выбором нескольких данных по id |
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||||||
| 12.08.2013, 22:01 | ||||||
|
Возможно такой запрос нужен
0
|
||||||
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12.08.2013, 22:18 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Тел___почта___скайп
результат тот же((( Добавлено через 6 минут в моем случае номеров-2, почт-3, скайпов-2. итого записей 2*3*2=12. а мне бы хотелось три записи (в данном случае)
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 12.08.2013, 22:24 | |
|
sirtimon - Попробуйте в запросе поэксперементировать со связями на - Объединение (Стрелочки в связях)
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 12.08.2013, 22:28 | |
|
Странно, посмотрите похожее вложение - все нормально (5 контактов - 5 записей). Условия Вашего, естественно нет.
0
|
|
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
|
| 12.08.2013, 22:38 [ТС] | |
|
0
|
|
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 12.08.2013, 22:43 | |
|
Значит связи как то не правильно создали
0
|
|
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
|||||||||||||||||||||||||||||||||||||||||||
| 12.08.2013, 22:46 [ТС] | |||||||||||||||||||||||||||||||||||||||||||
Добавлено через 3 минуты
0
|
|||||||||||||||||||||||||||||||||||||||||||
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 12.08.2013, 22:47 | |
|
Увы, перебор возникает.
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 12.08.2013, 22:57 | ||||||
|
Если требуется только одно, например первое значение телефонов, скайпов, почт, то нужен запрос с группировкой.
1
|
||||||
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 12.08.2013, 23:07 | |
|
lУвы, что у - tv_1953, посмотреть не можу, у меня 2000,
А, ну уж если и у него переборчик, то тогда даже и не знаю, может группитровать попробовать? Добавлено через 9 минут А я понял кажется из за чего, у Вас во всех таблицах имеется Имя - код, попробуйте изменить их типа - КодФИО, КодТел, КодЭмайл, КодЭлАдрес
0
|
|
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
|
| 12.08.2013, 23:12 [ТС] | |
|
может я вопрос не правильно ставлю... попробую спросить иначе.
мне известен код контакта. и мне теперь нужно получить список всех его телефонов, скайпов, емайлов. в принципе это три разных запроса, но я хотел создать подчиненную форму(в режиме таблицы) в отчете. поэтому решил что мне нужен один запрос чтобы использовать как источник данных для формы.
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 12.08.2013, 23:13 | |
|
Возможен вариант со сводной таблицей - но это если только посмотреть. Запрос Значения_ в режиме сводной.
0
|
|
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 12.08.2013, 23:13 | |
|
Да и поля - "код контакта" не мешало бы изменить типа на - КодКонтактаТ, КодКонтактаЭ, КодКонтактаП
1
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 12.08.2013, 23:16 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
|
|||
| 12.08.2013, 23:44 [ТС] | |||
|
Добавлено через 4 минуты Добавлено через 11 минут всем спасибо за участие. но вопрос с объединением без перебора остается открытым. возможно ли вообще такое!?
0
|
|||
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 12.08.2013, 23:59 | |
|
sirtimon - Может типа так нужно, соответственнр и отчет аналогично сделать
0
|
|
|
9128 / 6130 / 593
Регистрация: 27.03.2013
Сообщений: 19,974
|
|
| 13.08.2013, 00:25 | |
|
sirtimon - А еще лучше думается все в одной таблице хранить, просто добавить - Вид контакта. Ведь у Вас могут быть не только эти 3 вида контакта, потом еще захотите что то добавить и придется еще 1 подчиненную форму создавать и еще, а форма не безразмерная. Посмотрите пример-2
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||
| 13.08.2013, 00:32 | ||
|
Если сводная не годится - то, как возможное решение - записывать все контакты в специальную таблицу. С наборами данных получится просто. Удаляете все, пишите всю почту, добавляя записи. Таблицу на первую запись, редактируете ее, записывая скайпы, если таблица кончилась, добавляете в нее записи, записывая только скайпы. Таблицу на первую запись, редактируете ее, записывая телефоны, ... .
0
|
||
| 13.08.2013, 00:32 | |
|
Помогаю со студенческими работами здесь
19
INNER JOIN используется только для того чтобы вытащить значение с одной из таблиц Объединение таблиц INNER JOIN. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|