PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : SubQuery



admin
15 / June / 2013, 04:45 AM
SubQuery *(Query های تودرتو) :

Query ای است که در دل Query دیگری قراردارد.

SubQuery ها می توانند در قسمت های SELECT ، FROM و WHERE بیایند .

کد:


SELECT * * * * *<Clumn_List>FROM *
* * * * <data_Sourse>
WHERE * * * * *
<Condition>


__ *SubQuery هایی در قسمت SELECT می آیند : * *

نکته : SubQuery که در قسمت SELECT می آید باید فقط یک سطر و یک ستون را برگرداند که در نتیجه می شود یک مقدار.

سوال : Query بنوسید که از جدول Students ، اطلاعاتی *شامل ID ، FirstName و LastName را نمایش دهد و در کنار این اطلاعات ، ستونی دیگر که حاوی کمترین کد از جدول CityInfo می باشد را نیز نمایش دهد .


کد:


SELECT * * * MIN ( CID ) FROM * * CityInfo


دستور بالا کمترین کد از جدول CityInfo را نمایش می دهد ، حال باید این SELECT را درون SELECT قسمت اول سوال و درون یک پرانتز بزاریم ، به این شکل :


کد:


SELECT * * * *ID , * * * FirsName , * * *LastName , *
* ( *SELECT * * * * * * * MIN ( CID ) * * *FROM * * * * * *CityInfo *) *AS * *MinCID
FROM * * * Student



SubQuery هایی در قسمت FROM می آیند : * *

نکته : SubQuery که در قسمت FROM می آید می تواند حاوی چندین سطر و ستون باشد.

مثال : از جدول Student ، ستون ID را با نام جدید ،ستون FirstName و ستون LastName را با هم ادغام و در ستونی با نام جدید نمایش دهید به شرط اینکه معدل آنها بالای 15 باشد .



کد:


SELECT * * *
* Code *+ *100 * * AS * * NewCode
, FullName
, * *2 * * Average * * AS * * NewAvgFROM * * *
* *( *SELECT * * * ** *ID * * *AS * * *Code , * * * * * * * *
* * * * FirstName *+ *‘ * ‘ *+ *LastName * * *AS * * *FullName ,
Average * * *
* * * * FROM * *Students * * * * *
* WHERE * * * * * * * * * * *
* * Average * > * 15 * ) * * myTBL
WHERE * * * * *Code *+ *100 * > * 103





SELECT داخل پرانتز یک منبع داده ( data_Source ) برای ما می باشد .

__ *SubQuery هایی در قسمت WHERE می آیند : *

نکته : وقتی از SELECT به عنوان یک مقدار در WHERE استفاده می کنیم ، می آید باید یک سطر و یک ستون را برگرداند . *

مثال : از جدول CityInfo مشخصات شهری را برگردانید که دارای بیشترین جمعیت است.



کد:


SELECT ** FROM * *
* * CityInfoWHERE * * * * *Population * * = *
( * SELECT * * * Max *( Population ) * * * * * * * * * * *
* * * * * * * * * *FROM * * * * * * * * * * * * * * * * * * * * * * * *
* *CityInfo * *)



SELECT داخل پرانتز شهر دارای بیشترین جمعیت را مشخص می کند *و درون *Population قرار می دهد سپس طبق این شرط اطلاعات این شهر را نمایش می دهد .