Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518

Объединение трех одинаковых таблиц по одному полю

15.10.2016, 21:20. Показов 2559. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Гуру, подскажите куда копать! (давно не составлял сложных запросов - срочно должен вспомнить/научиться)

3 таблицы

имя | значение
a | 111
b | 111

имя | значение
a | 222
c | 222

имя | значение
b | 333
c | 333

Надо получить

имя | зн1 | зн2 | зн3
a | 111 | 222 | --- |
b | 111 | --- | 333 |
c | --- | 222 | 333 |

(попытка обьединить через FULL OUTER JOIN привела с сдваиванию строк с одним именем)

---------------

ИЛИ (изначальная задача)

таблица
a/b/c | зн1/зн2/зн3 | 111/222/333

Надо получить (все то-же) - по 3м значениям (зн1/зн2/зн3 - фиксированным) получить развернутую по столбцам таблицу

имя | зн1 | зн2 | зн3
a | 111 | 222 | --- |
b | 111 | --- | 333 |
c | --- | 222 | 333 |

селектами получил 3 таблицы, а обьединить их снова не могу... Может какая-то конструкция специально для этого предназначена?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2016, 21:20
Ответы с готовыми решениями:

Как просто вытащить по одному полю с максимальным значением из 2-x разных таблиц в postgres?
Вот так не получилось: SELECT MAX(t_places.sys_date_update) , MAX(t_category_cargo.sys_date_update) FROM t_places ...

Соединение 3 таблиц по одному полю
Есть таблица table1 (id,kod,opisanie), она главная, и есть 2 справочника table2(kod,name) и table3(kod,name). Возможно соединить таблицы...

Объединение строк с суммированием по одному полю таблицы, если остальные совпадают
Добрый день! Появилась такая задача, нужно обрабатывать базы данных с объемом перевозок, для дальнейшего анализа информации. Месячная база...

2
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,024
16.10.2016, 05:39
попарно join'ить попробуйте
SQL
1
2
3
4
5
SELECT 
COALESCE(t1t2.name, t3.name), t1_data, t2_data, t3.data
FROM
(SELECT COALESCE(t1.name, t2.name) AS name, t1.data AS t1_data, t2.data t2_data
FROM t1 FULL OUTER JOIN t2 ON t1.name = t2.name) t1t2 FULL OUTER JOIN t3 ON t1t2.name = t3.name;
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
16.10.2016, 06:18  [ТС]
уже подсказали решение. Сначала получают таблицу только с name, а потом через LEFT JOIN присоединяют значения по фильтрам, задавая новое имя столбцам. Потом все это выодят убирая null из не новых столбцов через COALESCE(t2_data, 0)..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2016, 06:18
Помогаю со студенческими работами здесь

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

Объединение трех таблиц
Добрый день. Подскажите пожалуйста как правильно составить запрос на обьединение из трех таблиц. С двумя таблица знаю как сделать, с 3мя...

Объединение (суммирование) одинаковых таблиц
Доброго дня! Есть такой запрос: for($i = 1; $i <=18; $i++){ $query="SELECT * FROM 2011_r_".$i." UNION SELECT * FROM...

Объединение трех таблиц в одну
Есть три таблицы с данными по материалам-"остатки","приход" и "расход",в которую записываются данные по индивидуальным кодам материалы из...

Из трех таблиц перенести строки в одну, собрав по ключевому полю, как?
Здравствуйте! Помогите. Есть три таблицы 1,2,3. Количество столбцов одинаковое. Как сделать так, чтобы данные из трех таблиц...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru