PostgreSQL Съединение, Съединение ВСИЧКИ с примери
⚡ Умно обобщение
PostgreSQL UNION комбинира резултатите от два или повече SELECT оператора в един набор от резултати и премахва дублиращите се редове, докато UNION ALL запазва всеки ред, което е по-бърз вариант, когато дублиранията нямат значение.

Какво е PostgreSQL съюз?
- PostgreSQL Операторът UNION се използва за комбиниране на набори от резултати от повече от един израз SELECT в един набор от резултати. Всички дублиращи се редове от резултатите от изразите SELECT се елиминират. Операторът UNION работи при две условия:
- Заявките SELECT трябва да връщат един и същ брой колони.
- Типовете данни на всички съответни колони трябва да са съвместими.
Операторът UNION обикновено се използва за комбиниране на данни от свързани таблици, които не са нормализирани перфектно.
Синтаксис
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Ето обяснение за горните параметри:
Изразът_1, изразът_2, … изразът_n са изчисленията или колоните, които трябва да извлечете.
Таблиците са таблиците, от които трябва да извличате записи.
Условието(ята) WHERE са условията, които трябва да бъдат изпълнени, за да могат записите да бъдат извлечени.
Забележка: Тъй като операторът UNION не връща дубликати, използването на UNION DISTINCT няма да окаже влияние върху резултатите.
PostgreSQL съюз
Операторът UNION премахва дубликати по същия начин, както ИЗБЕРЕТЕ РАЗЛИЧЕН прави. Нека демонстрираме това. Имаме база данни с име Demo със следните таблици:
Книга:
Цена:
Нека изпълним следната команда:
SELECT id FROM Book UNION SELECT id FROM Price;
Командата ще върне следното:
Колоната за id се появява както в таблицата „Книга“, така и в таблицата „Цена“. Той обаче се появява само веднъж в резултата. Причината е, че PostgreSQL Операторът UNION не връща дубликати.
PostgreSQL съюз всички
Този оператор комбинира набори от резултати от повече от един оператор SELECT, без да премахва дубликати. Операторът изисква всеки оператор SELECT да има подобен брой полета в набори с резултати от подобни типове данни.
Синтаксис:
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Ето обяснение за горните параметри:
Изразът_1, изразът_2, … изразът_n са изчисленията или колоните, които трябва да извлечете.
Таблиците са таблиците, от които трябва да извличате записи.
Условието(ята) WHERE са условията, които трябва да бъдат изпълнени, за да могат записите да бъдат извлечени.
Забележка: И двата SELECT оператора трябва да имат равен брой изрази.
Ще използваме следните таблици:
Книга:
Цена:
Изпълнете следната команда:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Трябва да върне следното:
Дубликатите не са премахнати.
ПОДРЕДЕНИ ПО
- PostgreSQL Операторът UNION може да се използва заедно с клаузата ORDER BY за подреждане на резултатите от заявката. За да демонстрираме това, ще използваме следните таблици:
Цена:
Цена2:
Ето командата, която демонстрира как да използвате оператора UNION заедно с клаузата ORDER BY:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Командата ще върне следното:
Записите бяха подредени по ценовата колона. Клаузата подрежда записите във възходящ ред по подразбиране. За да ги подредите в низходящ ред, добавете клаузата DESC, както е показано по-долу:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Командата ще върне следното:
Записите са подредени въз основа на ценовата колона в низходящ ред.
Кога да използваме Union и кога Union All?
Използвайте оператора UNION, когато имате няколко таблици с подобна структура, но разделени по някаква причина. Той е добър, когато трябва да премахнете или елиминирате дублиращи се записи.
Използвайте оператора UNION ALL, когато не е необходимо да премахвате или елиминирате дублиращи се записи.
Използване на pgAdmin
Сега нека видим как се изпълняват и трите действия с помощта на pgAdmin.
Как да използваме PostgreSQL Обединение с помощта на pgAdmin
Следва стъпка по стъпка процес за това как да го използвате PostgreSQL СЪЮЗ чрез pgAdmin:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) От навигационната лента вляво щракнете върху Бази данни, след което щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Стъпка 4) Щракнете върху бутона Изпълнение.
Трябва да върне следното:
съюз всички
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) От навигационната лента вляво щракнете върху Бази данни, след което щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Стъпка 4) Щракнете върху бутона Изпълнение.
Трябва да върне следното:
ПОДРЕДЕНИ ПО
Операторът UNION ALL може да се комбинира с клаузата ORDER BY, за да подредите резултатите в набора от резултати. Например:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Командата ще върне следното:
Резултатите са подредени.
Изтеглете базата данни, използвана в този урок

















