فهرست سرفصل‌های MySQL
خانه (HOME) مقدمه (Intro) پایگاه داده رابطه ای (RDBMS) SQL (SQL) SELECT (SELECT) WHERE (WHERE) عملگرهای AND, OR, NOT (AND, OR, NOT) مرتب سازی (ORDER BY) افزودن رکورد (INSERT INTO) مقادیر NULL (NULL Values) بروزرسانی (UPDATE) حذف (DELETE) محدودیت تعداد (LIMIT) کمینه و بیشینه (MIN and MAX) COUNT، AVG، SUM (COUNT, AVG, SUM) LIKE (LIKE) کاراکترهای عام (Wildcards) IN (IN) BETWEEN (BETWEEN) نام های مستعار (Aliases) اتصال ها (Joins) INNER JOIN (INNER JOIN) LEFT JOIN (LEFT JOIN) RIGHT JOIN (RIGHT JOIN) CROSS JOIN (CROSS JOIN) خود-اتصالی (Self Join) UNION (UNION) UNION ALL (UNION ALL) گروه بندی (GROUP BY) HAVING (HAVING) EXISTS (EXISTS) ANY و ALL (ANY, ALL) INSERT SELECT (INSERT SELECT) CASE (CASE) توابع Null (Null Functions) کامنت ها (Comments) عملگرها (Operators) ایجاد پایگاه داده (Create DB) حذف پایگاه داده (Drop DB) ایجاد جدول (Create Table) حذف جدول (Drop Table) تغییر جدول (Alter Table) قیود (Constraints) Not Null (Not Null) منحصر به فرد (Unique) کلید اصلی (Primary Key) کلید خارجی (Foreign Key) CHECK (Check) پیش فرض (Default) ایندکس (Create Index) افزایش خودکار (Auto Increment) تاریخ ها (Dates) نماها (Views) انواع داده (Data Types) توابع (MySQL Functions) ASCII (ASCII) CHAR_LENGTH (CHAR_LENGTH) CHARACTER_LENGTH (CHARACTER_LENGTH) CONCAT (CONCAT) CONCAT_WS (CONCAT_WS) FIELD (FIELD) FIND_IN_SET (FIND_IN_SET) FORMAT (FORMAT) INSERT (INSERT) INSTR (INSTR) LCASE (LCASE) LEFT (LEFT) LENGTH (LENGTH) LOCATE (LOCATE) LOWER (LOWER) LPAD (LPAD) LTRIM (LTRIM) MID (MID) POSITION (POSITION) REPEAT (REPEAT) REPLACE (REPLACE) REVERSE (REVERSE) RIGHT (RIGHT) RPAD (RPAD) RTRIM (RTRIM) SPACE (SPACE) STRCMP (STRCMP) SUBSTR (SUBSTR) SUBSTRING (SUBSTRING) SUBSTRING_INDEX (SUBSTRING_INDEX) TRIM (TRIM) UCASE (UCASE) UPPER (UPPER) ABS (ABS) ACOS (ACOS) ASIN (ASIN) ATAN (ATAN) ATAN2 (ATAN2) AVG (AVG) CEIL (CEIL) CEILING (CEILING) COS (COS) COT (COT) COUNT (COUNT) DEGREES (DEGREES) DIV (DIV) EXP (EXP) FLOOR (FLOOR) GREATEST (GREATEST) LEAST (LEAST) LN (LN) LOG (LOG) LOG10 (LOG10) LOG2 (LOG2) MAX (MAX) MIN (MIN) MOD (MOD) PI (PI) POW (POW) POWER (POWER) RADIANS (RADIANS) RAND (RAND) ROUND (ROUND) SIGN (SIGN) SIN (SIN) SQRT (SQRT) SUM (SUM) TAN (TAN) TRUNCATE (TRUNCATE) ADDDATE (ADDDATE) ADDTIME (ADDTIME) CURDATE (CURDATE) CURRENT_DATE (CURRENT_DATE) CURRENT_TIME (CURRENT_TIME) CURRENT_TIMESTAMP (CURRENT_TIMESTAMP) CURTIME (CURTIME) DATE (DATE) DATEDIFF (DATEDIFF) DATE_ADD (DATE_ADD) DATE_FORMAT (DATE_FORMAT) DATE_SUB (DATE_SUB) DAY (DAY) DAYNAME (DAYNAME) DAYOFMONTH (DAYOFMONTH) DAYOFWEEK (DAYOFWEEK) DAYOFYEAR (DAYOFYEAR) EXTRACT (EXTRACT) FROM_DAYS (FROM_DAYS) HOUR (HOUR) LAST_DAY (LAST_DAY) LOCALTIME (LOCALTIME) LOCALTIMESTAMP (LOCALTIMESTAMP) MAKEDATE (MAKEDATE) MAKETIME (MAKETIME) MICROSECOND (MICROSECOND) MINUTE (MINUTE) MONTH (MONTH) MONTHNAME (MONTHNAME) NOW (NOW) PERIOD_ADD (PERIOD_ADD) PERIOD_DIFF (PERIOD_DIFF) QUARTER (QUARTER) SECOND (SECOND) SEC_TO_TIME (SEC_TO_TIME) STR_TO_DATE (STR_TO_DATE) SUBDATE (SUBDATE) SUBTIME (SUBTIME) SYSDATE (SYSDATE) TIME (TIME) TIME_FORMAT (TIME_FORMAT) TIME_TO_SEC (TIME_TO_SEC) TIMEDIFF (TIMEDIFF) TIMESTAMP (TIMESTAMP) TO_DAYS (TO_DAYS) WEEK (WEEK) WEEKDAY (WEEKDAY) WEEKOFYEAR (WEEKOFYEAR) YEAR (YEAR) YEARWEEK (YEARWEEK) BIN (BIN) BINARY (BINARY) CASE (CASE) CAST (CAST) COALESCE (COALESCE) CONNECTION_ID (CONNECTION_ID) CONV (CONV) CONVERT (CONVERT) CURRENT_USER (CURRENT_USER) DATABASE (DATABASE) IF (IF) IFNULL (IFNULL) ISNULL (ISNULL) LAST_INSERT_ID (LAST_INSERT_ID) NULLIF (NULLIF) SESSION_USER (SESSION_USER) SYSTEM_USER (SYSTEM_USER) USER (USER) VERSION (VERSION) مثال ها (MySQL Examples) ویرایشگر (MySQL Editor) آزمون (MySQL Quiz) تمارین (MySQL Exercises) سرفصل (MySQL Syllabus) برنامه مطالعه (MySQL Study Plan) گواهینامه (MySQL Certificate)
نتیجه‌ای برای جستجو یافت نشد.
MySQL

MySQL — UNION (UNION)

آخرین بروزرسانی: 1404/08/18

UNION (UNION)

«یونین (UNION)» نتیجه چند کوئری را با هم ترکیب می کند. سپس ردیف های تکراری را حذف می کند. «تکراری (Duplicate)» یعنی همه ستون ها برابر باشند. مثل ادغام دو لیست شهرها و حذف شهرهای تکراری.

قوانین مهم UNION

تعداد ستون ها باید برابر باشد. نوع داده ها باید مشابه باشند. ترتیب ستون ها نیز باید یکسان باشد. نام ستون های خروجی معمولاً از اولین SELECT می آیند.

سینتکس استاندارد

SELECT column_name(s) FROM table1;
UNION;
SELECT column_name(s) FROM table2;

مشاهده در ادیتور

نکته: اگر ردیف های تکراری را هم می خواهی، از UNION ALL استفاده کن.

مثال 1: شهرهای یکتا از دو جدول

می خواهیم شهرهای یکتا از «Customers» و «Suppliers» را بگیریم. یونین تکراری ها را حذف می کند. سپس با City مرتب می کنیم.

SELECT City FROM Customers;
UNION;
SELECT City FROM Suppliers;
ORDER BY City;

مشاهده در ادیتور

مثال 2: فیلتر با WHERE

فقط شهرهای آلمان را می خواهیم. هر دو SELECT شرط WHERE مشابه دارند. خروجی همچنان یکتا است.

SELECT City,
       Country
FROM Customers
WHERE Country = 'Germany';
UNION;
SELECT City,
       Country
FROM Suppliers
WHERE Country = 'Germany';
ORDER BY City;

مشاهده در ادیتور

مثال 3: برچسب گذاری نوع رکورد با Alias

می خواهیم مشتری و تأمین کننده را در یک لیست ببینیم. با «نام مستعار (Alias)» یک ستون Type می سازیم.

SELECT 'Customer' AS Type,
       ContactName,
       City,
       Country
FROM Customers;
UNION;
SELECT 'Supplier' AS Type,
       ContactName,
       City,
       Country
FROM Suppliers;

مشاهده در ادیتور

گام های سریع تمرین

  1. SELECT اول را با ستون های هدف بنویس.
  2. کلمه UNION را اضافه کن.
  3. SELECT دوم را با همان ستون ها بنویس.
  4. در صورت نیاز ORDER BY را در انتها بگذار.
  5. اگر تکراری ها لازم اند، از UNION ALL استفاده کن.

برای مرور تفاوت «یونین» با جوین ها، به INNER JOIN سر بزن. همچنین صفحه یونین را نشانه گذاری کن و سپس UNION ALL را ببین.

جمع بندی سریع

  • UNION نتایج چند SELECT را ادغام می کند.
  • خروجی به صورت پیش فرض یکتا است.
  • تعداد و ترتیب ستون ها باید یکسان باشد.
  • برای تکراری ها از UNION ALL کمک بگیر.
  • ORDER BY باید در انتها بیاید.