آموزش طراحی وب

عملگر UNION در MySql

در این مقاله ی آموزشی در رابطه با عملگر UNION در MySql صحبت می کنیم و با ذکر مثال این عملگر رو خدمتتون آموزش میدیم.

 union

عملگر UNION و UNION ALL در MySql

سلام خدمت همراهان همیشگی مدرسه مجازی ایرانیان

در این جلسه راجع به union در mysql صحبت میکنیم و با ذکر مثال نحوه ی استفاده از این عملگر رو خدمتتون آموزش میدیم.

 

عملگر UNION

زمانی که شما بخواین از دو یا چند جدول اطلاعات یکسان دریافت کنید و نمایش بدید از این عملگر استفاده می کنید. مثلا یک جدول بنام مشتریان دارید و یک جدول بنام کارمندان دارید. در هر دو جدول فیلدهای نام ، نام خانوادگی ، شماره تماس دارید که میخواین با یک کوئری اطلاعات نام و نام خانوادگی و شماره تماس همه ی مشتریان و کارمندان رو یک جا نمایش بدید. در این موقعیت از union استفاده می کنید. در غیر این صورت باید بصورت مجزا یک select برای جدول مشتریان بنویسید و یک select برای جدول کارمندان بنویسید.

نکته : این عملگر مقادیر غیر تکراری رو انتخاب می کنه و به شما نمایش میده، مثلا اگر بخوایم شماره تماس های کارمندان رو انتخاب کنیم، و دو رکورد با یک شماره تماس داشته باشیم ، یکی از اون رکوردهارو به ما نمایش میده.

خوب حالا با استفاده از union میتونیم با یک کوئری اطلاعات یکسان هر دو جدول رو بگیریم و نمایش بدیم. منظور از اطلاعات یکسان این هست که باید type فیلدهایی که select می کنید یکسان باشه. خوب حالا کوئری مثالی که زدیم رو با استفاده از union مینویسیم:

در مثال بالا با این حال که نام فیلدها متفاوت هست اما type اونها یکسانه ، پس مشکلی بوجود نمیاد. در این کوئری ما نام ، نام خانوادگی و شماره تماس مشتریان + کارمندان رو گرفتیم و در یک کوئری نمایش میدیم.

 

عملگر UNION ALL

این عملگر هم مثل UNION عمل میکنه با این تفاوت که رکوردهای تکراری رو هم انتخاب میکنه و به شما نمایش میده.

 

انتخاب و تفکیک مقادیر یک جدول با عملگر UNION

گاهی پیش میاد که میخوایم مقادیر یک جدول رو تفکیک کنیم و در یک کوئری بگیریم و نمایش بدیم، مثلا یک جدول بنام users داریم که شامل فیلدهای name , family , usertype میشه . اگر usertype مقدار ۱ رو داشته باشه یعنی کارمند و اگر usertype مقدار ۲ رو داشته باشه یعنی مشتری. خوب با این حساب میخوایم یک کوئری بزنیم و بگیم تمامی رکوردهای جدول  users رو با تفکیک کارمند و مشتری بگیر و در یک ستون تمامی این رکوردهارو به ما نمایش بده، کارمندان ابتدای نتایج و مشتریان انتهای نتایج قرار بگیرن.

برای این کار علاوه بر order by میتونیم از UNION هم استفاده کنیم ، به این صورت که ابتدا select برای کارمندان میزنیم و بعد select برای مشتریان میزنیم. کوئری ما به شکل زیر خواهد بود:

این روش رو با ORDER BY هم میتونیم خیلی خلاصه تر انجام بدیم :

 

ORDER BY و Sort رکوردها در UNION

برای اینکه بتونید مقادیر و رکوردهاتون رو مرتب کنید، باید از ORDER BY استفاده کنید. مثلا میخواین رکوردها بر اساس حروف الفبا مرتب و نمایش داده بشن . برای اینکار میتونیم از alias استفاده کنیم:

در مثال بالا برای customernumber و  employeenumber الیاس یا alias با مقدار id در نظر گرفتیم و برای customername و firstname الیاس با مقدار name در نظر گرفتیم و بر اساس name و id مرتبشون کردیم.

در رابطه با ordery by در جلسات آینده بطور کامل صحبت می کنیم.

 

خوب دوستان امیدوارم که این مقاله ی آموزشی براتون مفید بوده باشه.

موفق و پاینده باشید.

تهیه شده در مدرسه مجازی ایرانیان

حسین همت یار

نویسنده در مدرسه مجازی ایرانیان ، دانشجوی رشته IT ، طراح وب و علاقه مند به تازه های دنیای اینترنت و وب و البته لینوکس

ثبت دیدگاه

آیا سوالی دارید؟

پنل کاربران

بستن
*
*

نظرسنجی

به کدام دسته موضوعی علاقه مند هستید؟

آخرین پرسش و پاسخ ها

اموزش تصادفی

خبرهای باحال دریافت کن

خبرهای باحال دریافت کن

ما هم مثل شما از دریافت ایمیل های مزاحم خوشمون نمیاد. فقط مطالب جدید و خبرهای ویژه رو به اطلاع شما میرسونیم. قول میدیم اسپم نکنیم :)

ثبت نام انجام شد ، لطفا ایمیلی که براتون ارسال میشه رو تایید کنین