English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
استخدام عمودية UNION في PostgreSQL لدمج نتائج جملتين أو أكثر من SELECT.
استخدام عمودية UNION لدمج نتائج جملتين أو أكثر من SELECT.
يرجى الانتباه، يجب أن يكون كل جملة SELECT داخل UNION تحتوي على عدد متساوٍ من الأعمدة. يجب أن تكون الأعمدة أيضًا مشابهة في نوع البيانات. كما يجب أن يكون ترتيب الأعمدة في كل جملة SELECT متساوٍ.
UNIONS أساسيات الجملة التالية:
SELECT column1[, column2] FROM table1[, table2] [WHERE condition] UNION SELECT column1[, column2] FROM table1[, table2] [WHERE condition]
هذه الجملة الشرطية يمكن تكوينها بناءً على احتياجاتك بأي تعبير.
创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:
w3codeboxdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 سجلات)
创建 DEPARTMENT 表(下载 DEPARTMENT SQL 文件 ),数据内容如下:
w3codeboxdb=# SELECT * from DEPARTMENT; id | dept | emp_id ----+-------------+-------- 1 | IT Billing 1 2 | Engineering | 2 3 | Finance | 7 4 | Engineering | 3 5 | Finance | 4 6 | Engineering | 5 7 | Finance | 6 (7 سجلات)
الآن، نستخدم عبارة UNION في جملة SELECT لنربط الجداول كما يلي:
SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT على COMPANY.ID = DEPARTMENT.EMP_ID UNION SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT على COMPANY.ID = DEPARTMENT.EMP_ID;
حصلت النتائج كما يلي:
emp_id | name | dept --------+-------+-------------- 5 | David | الهندسة 6 | Kim | المالية 2 | Allen | الهندسة 3 | Teddy | الهندسة 4 | Mark | المالية 1 | Paul | تكنولوجيا المعلومات الفواتير 7 | James | المالية (7 سجلات)
عامل UNION ALL يمكن ربط جملتين SELECT تحتويان على سجلات مكررة، عادةً يتم اختيار القيم المختلفة. إذا كنت تسمح بالقيم المكررة، استخدم UNION ALL.
قاعدة النحو لعبارة UNION ALL هي:
SELECT column1[, column2] FROM table1[, table2] [WHERE condition] UNION ALL SELECT column1[, column2] FROM table1[, table2] [WHERE condition]
هذه الجملة الشرطية يمكن تكوينها بناءً على احتياجاتك بأي تعبير.
الآن، دعونا نربط الجداول المذكورة أعلاه باستخدام جملة SELECT وعبارة UNION ALL:
SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT على COMPANY.ID = DEPARTMENT.EMP_ID UNION ALL SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT على COMPANY.ID = DEPARTMENT.EMP_ID;
حصلت النتائج كما يلي:
emp_id | name | dept --------+-------+-------------- 1 | Paul | تكنولوجيا المعلومات الفواتير 2 | Allen | الهندسة 7 | James | المالية 3 | Teddy | الهندسة 4 | Mark | المالية 5 | David | الهندسة 6 | Kim | المالية 1 | Paul | تكنولوجيا المعلومات الفواتير 2 | Allen | الهندسة 7 | James | المالية 3 | Teddy | الهندسة 4 | Mark | المالية 5 | David | الهندسة 6 | Kim | المالية (14 أسطر)