ورود

View Full Version : سوال: چند سوال در مورد برخی از دستورات SQl



hasandrw
دوشنبه 14 شهریور 1390, 07:01 صبح
سلام
دستور Union و Join و Group By و Alias و Top چه کابردهایی دارند؟
من اصلا با این دستورات کار نکردم. از حالا می خوام باهاشون کار کنم.
اگه میشه در مورد هر کدام یک مثال بزنید.
ممنونم.

bigtime
دوشنبه 14 شهریور 1390, 10:51 صبح
با سلام
union:با این دستور شما نتایج دو جستجو در دو جدول رو یک جا نشون میدی:
select *from tbl_first [union/union all] select *from tbl_second;q
group by:با این دستور شما نتایج یک جستجو رو گرو بندی می کنید:
select *from my_tbl group by oneofmy_tbl_columns;q
join:با این دستور شما دو جدول رو با هم تلفیق می کنید چون خودم از این دستور استفاده نکردم تا حالا مثال نمی زنم.
با بقیه هم کار نکردم تا حالا.

hasandrw
دوشنبه 14 شهریور 1390, 13:07 عصر
کسی است که با دستور Join بیشتر کار کرده باشه و ما را راهنمایی کنه؟
اگه کسی بلده از ما بی دریغ نکنه

bigtime
شنبه 19 شهریور 1390, 22:59 عصر
با سلام
اقا join:
select *from tbl_name1 left/right join on tbl1_column=tbl2_column;q
از قسمت on به بعد رو می تونید اگر نام دو ستونتون در جدول ها یکی بود می تونید به این طریق عمل کنید:
using(column_name);q

anouri
سه شنبه 05 مهر 1390, 00:33 صبح
پاسخ همراه با خطای سنتکس هستش.

1- union:
توجه کنید که تعداد ستونهای دوتا select باید یکی باشد یعنی تعداد ستونها مساوی

select field1,field2 from table1
union
select field1,field2 from table2

2 - join

select hogog.tax,hogog.bime,personel.name,personel.family from hogog
inner join personel on (personle.emp_no=hogog.emp_no)

یعنی دو تاجدول رو بهم ارتباط میدی بر اساس معمولا forigen key و سپس میتونی فیلدهای دیگه رو استفاده کنی

3- group by

مثال فرض کنید در جدولی که پرسنل هستش یک فیلد جنسیت دارید و میخواید بدونید چند تا مرد داریم چند تا زن

select jensiat,count(*) as tedad from employee
group by jensiat

4- alias
نام مستعار است به یک جدول یا فیلد یا sub query

مثال
select e.emp_no as shomare from employee e
در اینجا دو تا alias وجود دارد
employee با نام مستعار e و emp_no با نام مستعاد shomare
این خیلی وقتا باعث میشه راحتتر جداول صدا زده بشن و طول کوئری کوتاهتر بشه مثلا بجای employee.emp_no نوشتم e.emp_no

5- top

این keyword مربوط به sql server هستش و در mysql از limit استفاده میشه
مثلا میخواید در جدول دانشجویان که یک فیلد مثلا معدل داره ده نفر اول را پیدا کنید

select * from daneshjo
order by moaddel
limit 10

حلله؟

www.passak.org
a_nouri_s@yahoo.com
در صورت بروز مشکل !