თავი 5. მონაცემების ამორჩევა ერთზე მეტი ცხრილიდან - ცხრილების გაერთიანება

        ქვეშეკითხვის ფორმირება
 კომბინირებულ შეკითხვას ისეთ შეკითხვას უწოდებენ, რომელიც ქვეშეკითხვას შეიცავს. SQL-ის სტანდარტით სამი ტიპის ქვეშეკითხვაა განსაზღვრული:
  1. სტრიქონობრივი - ქვეშეკითხვის ამორჩევის შედეგი ერთზე მეტი სვეტის მქონე ერთი სტრიქონია;
  2. ცხრილური - ქვეშეკითხვის ამორჩევის შედეგი ერთი ან ერთზე მეტი სვეტის მქონე არცერთი ან ერთზე მეტი სტრიქონია;
  3. სკალარული - ქვეშეკითხვის ამორჩევის შედეგი მხოლოდ ერთი  სვეტისგან და ერთი სტრიქონისგან შედგება;

ქვეშეკითხვის ფორმირებისას დაცულ უნდა იქნეს შემდეგი პირობები:
  • ქვეშეკითხვის წინადადება SELECT, როგორც წესი, ერთ დომენს (სვეტს) უნდა შეიცავდეს;
  • წინადადება ORDER BY გამოყენებულ უნდა იქნეს ძირითად შეკითხვაში; 
  • ქვეშეკითხვაში მონაცემების დასაჯგუფებლად აუცილებელად გამოყენებულ უნდა იქნეს წინადადება GROUP BY;
  • ძირითად შეკითხვაში არ შეიძლება გამოყენებულ იქნეს წინადადება BETWEEN;
მაგალითი
      გვაქვს ორი ცხრილი ერთი შეიცავს საქონლის მომწოდებლების შესახებ ინფორმაციას, ხოლო მეორე კი მათთან დადებული კონტრაქტის მიხედვით მოწოდებულ საქონლის ნუსხას მოწოდების თარიღისა და ფაქტობრივად საქონლის მიღების თარიღის ჩვენებით/ცხრ. 4 /.



მომწოდებლები-tbmom        
                                                    
მოწოდებული საქონელი-tbmireba
მომნომერი
კონტრაქტინომ
გვარი, სახელი
მოწოდებისთარიღი

მიღებისთარიღი

მომნომერი
ეს ორი ცხრილი ერთმანეთთან დაკავშირებულია ველით <მომნომერი>. ჩვენი მიზანია ამორჩეულ იქნეს იმ საქონელთა დასახელებები, რომლებიც ფაქტობრივად მიღებულ იქნენ 1.04.2009. ეს შეკითხვა ქვეშეკითხვის გამოყენებით შემდეგნაირად ჩაიწერება:
SELECT tbmireba.kontraqtinom, tbmireba.mowodebistariri, tbmireba.mirebistariri," & _
" (SELECT tbmom.gvari AS[momwodebeli]" & _
" FROM tbmom WHERE tbmom.momnomeri = tbmireba.momnomeri)" & _
" FROM  tbmireba" & _
" WHERE tbmireba.mirebistariri = #4.1.2009#"

        მიაქციეთ ყურადღება ქვეშეკითხვის ჩაწერის სინტაქსს: ქვეშეკითხვა გამოყოფილია ძირითადი შეკითხვიდან ფრჩხილებით. იგი დაწერილია ძირითადი შეკითხვის SELECT განყოფილებაში. ქვეშეკითხვის ტექსტის დამთავრების შემდეგ (ფრჩხილით ”)” დახურვის შემდეგ) გრძელდება ძირითადი შეკითხვის ტექსტი: პირობები FROM  და WHERE. ცხადია ძირითად და ქვეშეკითხვაში შეიძლება დამატებულ იქნეს SQL ინსტრუქციის სხვა პირობებიც: ORDER BY, GROUP PY. 
იმავე შედეგს მივიღებთ INNER JOIN კავშირის გამოყენებისას. აქ ჩვენ ვაჩვენეთ მხოლოდ ქვეშეკითხვის ჩაწერის ტექნიკა. ქვეშეკითხვის გამოყენება ეფექტურია და ფაქტობრივად სხვანაირად შეუძლებელია SQL ინსტრუქციაში ფუნქციების გამოყენების დროს. ქვევით მოტანილი მაგალითები ქვეშეკითხვების გამოყენების ილუსტრაციაა. 
მაგალითი
მომწოდებლების გვარების ჩვენებით გამოვიანგარიშოთ მოწოდებული საქონლის რაოდენობა
SELECT tbmom.gvari," & _
" (SELECT COUNT(tbmom.gvari)" & _
" FROM tbmiteba WHERE tbmom.momnomeri = tbmireba.momnomeri)" & _
" FROM  tbmom"
მაგალითი
მომწოდებლების გვარების ჩვენებით ნაჩვენები იქნეს მოწოდების მაქსიმალური თარიღი.
SELECT tbmom.gvari," & _
" (SELECT Max(tbmiteba. mowodebistariri)" & _
" FROM tbmiteba WHERE tbmom.momnomeri = tbmireba.momnomeri)"  & _
" FROM  tbmom "