Бірнеше кестелерден деректерді SQL ішкі қосылыстарымен шығарып алу

Ішкі қосылым екі немесе одан да көп дерекқорларда пайда болатын ақпаратты қайтарады

Ішкі біріктірулер SQL-де жиі пайдаланылатын қосылыстар болып табылады. Олар тек екі немесе одан да көп дерекқор кестелерінде бар ақпаратты қайтарады. Біріктіру шарты қандай жазбаларды бірге жұптастырады және WHERE тармағында көрсетіледі. Мысалы, көлік пен драйвер сол қалада орналасқан жүргізуші / көлік құралының сәйкестіктері тізімін қажет етсе, келесі SQL сұрауы келесі тапсырманы орындайды:

FROM драйверлерін, көлік құралдарын WHERE drivers.location = vehicles.location тегі, SELECT фамилиясын, атын енгізіңіз

Нәтижелері:

тегі тегі
----------- ------------ ----
Бейкер Роланд H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Нәтижелер дәл осы нәрсе сұралғанына назар аударыңыз. WHERE тармағындағы қосымша критерийлерді көрсету арқылы сұрауды одан әрі жетілдіруге болады. Бастапқы сұрау драйверлерге көлік жүргізуге рұқсат етілмейтін көлік құралдарына сәйкес келеді (көліктің жүргізушілерін автокөлікке және керісінше). Бұл мәселені шешу үшін келесі сұрауды пайдалана аласыз:

SELECT фамилиясын, атын, тегтерді, vehicles.class FROM драйверлері, көлік WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Бұл мысал сыныптың төлсипаты үшін көз кестесін ТАҢДАУ сөйлемінде анықтайды, себебі сынып бірдей емес - ол екі кестеде де пайда болады. Әдетте, кодта қандай кестенің бағаны сұрау нәтижелеріне қосылуы керектігін анықтайды. Бұл жағдайда, ол айырмашылығы жоқ, өйткені бағандар бірдей және олар бір-бірімен қосылады. Алайда, егер бағандарда әртүрлі деректер болса, бұл айырмашылық өте маңызды болар еді. Міне, осы сұранымның нәтижесі:

тегі аты
---------- ------------ ---- ------
Бейкер Roland H122JM автомобиль
Smythe Michael D824HA жүк көлігі
Jacobs Abraham J291QR автомобиль

Жетіспеген жолдар Михаил Смитті автокөлікпен және Ыбырайымның «Джейкобс» көлігімен жұптастырды.

Деректерді үш немесе одан да көп кестелерден біріктіру үшін ішкі қосылымдарды пайдалануға болады.