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 قرار می دهد سپس طبق این شرط اطلاعات این شهر را نمایش می دهد .
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 قرار می دهد سپس طبق این شرط اطلاعات این شهر را نمایش می دهد .