Cartesian product SQL рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рднреА рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рднреАред рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭрдирд╛ рдЖрдкрдХреА рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╛рдлреА рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдо Cartesian products рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╡ рдЙрджрд╛рд╣рд░рдг рджреЗрдВрдЧреЗред┬а
рдпрджрд┐ рдЖрдк SQL рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдПрдХ рдордЬрдмреВрдд рдиреАрдВрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ Intermediate SQL рдХреЛрд░реНрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред рд╕рд╛рде рд╣реА, рдбрд╛рдЙрдирд▓реЛрдб рдпреЛрдЧреНрдп SQL Basics Cheat Sheet рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдВрджрд░реНрдн рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп SQL рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Cartesian Product рдХреНрдпрд╛ рд╣реИ?
SQL рдореЗрдВ Cartesian product рд╡рд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдСрдкрд░реЗрд╢рди рдкреНрд░рд╛рдпрдГ CROSS JOIN рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдЯреЗрдмрд▓реЛрдВ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдпреБрдЧреНрдореЛрдВ рд╡рд╛рд▓рд╛ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдмрдбрд╝реА рдкрдВрдХреНрддрд┐-рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рдбреЗрд╡рд▓рдкрд░ рд╕рдВрднрд╡рддрдГ рдкрд╣рд▓реА рдмрд╛рд░ Cartesian product рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рдЬреЙрдЗрди рдХрдВрдбреАрд╢рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдиреЗ рдкрд░ рд╣реА рдЦреЛрдЬрддреЗ рд╣реИрдВтАФрдФрд░ рдЕрдВрддрддрдГ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдкрд╛ рдмреИрдарддреЗ рд╣реИрдВред
рдЧрдгрд┐рддреАрдп рдкреГрд╖реНтАНрдарднреВрдорд┐
рдЧрдгрд┐рдд рдореЗрдВ, Cartesian product (A ├Ч B) рд╡рд╣ рд╕рдореБрдЪреНрдЪрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдореБрдЪреНрдЪрдп A рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рдпрд╡ рдХреЛ рд╕рдореБрдЪреНрдЪрдп B рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рдпрд╡ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдП рдЧрдП рд╕рднреА рд╕рдВрднрд╡ рдХреНрд░рдордмрджреНрдз рдпреБрдЧреНрдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред SQL рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ред
Cartesian product рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
SQL cross join
SQL рдореЗрдВ cross join рдСрдкрд░реЗрд╢рди рдкрд╣рд▓реЗ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реЗ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ Cartesian product рдмрдирд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, cross-join рдбреЗрдЯрд╛ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП SQL рдореЗрдВ cross join рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдЯреЗрдмрд▓ рд╣реИрдВ, Students рдФрд░ Courses:
Students рдЯреЗрдмрд▓
name grade Alice 10 Bob 11 Charlie 12
Courses рдЯреЗрдмрд▓
course level Math Basic Science Advanced History Intermediate
рдирд┐рдореНрди рдХреНрд╡реЗрд░реА рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЛ рд╣рд░ рдХреЛрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдирдХрд╛ рдЧреНрд░реЗрдб рдФрд░ рдХрдард┐рдирд╛рдИ рд╕реНрддрд░ рджрд┐рдЦрддрд╛ рд╣реИред
SELECT Students. name, Students. grade, Courses. course, Courses. level
FROM Students
CROSS JOIN Courses; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
SQL рдореЗрдВ cross join рд╕реЗ рдЙрддреНрдкрдиреНрди Cartesian product рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
SQL рдореЗрдВ Cartesian Product рдХрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдХрдм рдирд╣реАрдВ
рдЬрдм рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдХрд░ рдФрд░ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрд╡рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ SQL рдореЗрдВ Cartesian product рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдгреЛрдВ (рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдореЛрдВ) рдХреЛ рджреЗрдЦреЗрдВред
рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдг
рдирд┐рдореНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдирд╛: рджреЛ рдорд╛рди-рд╕рдореБрдЪреНрдЪрдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рдЖрджрд░реНрд╢ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЫреВрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд╢рд┐рдлреНрдЯреНрд╕ рд╕реЗ рдорд┐рд▓рд╛рдирд╛, рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдпреБрдЧреНрдо рдмрдирд╛рдирд╛ред
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдп: рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдЪрд▓рд╛рддреЗ рд╕рдордп, рд╡рд┐рднрд┐рдиреНрди рдкреИрд░рд╛рдореАрдЯрд░-рд╕реЗрдЯреНрд╕ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд┐рд▓рд╛рдХрд░ рд╣рд░ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ Cartesian product рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд▓реБрдкреНтАНрдд рдбреЗрдЯрд╛ рднрд░рдирд╛: рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдХрд░ рдФрд░ рдлрд┐рд░ рд▓реЗрдлреНрдЯ-рдЬреЙрдЗрди рдХрд░рдХреЗ рд░рд┐рдХреНрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЯрд╛рдЗрдо-рд╕реАрд░реАрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд▓рд╛рдкрддрд╛ рддрд┐рдерд┐рдпрд╛рдБ рдкрд╣рдЪрд╛рдирдирд╛ред
рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдо
рдпрджреНрдпрдкрд┐ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ Cartesian product рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рдХреЗ рдХреБрдЫ рдЬреЛрдЦрд┐рдо рднреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдБ: рдХреНрдпреЛрдВрдХрд┐ Cartesian product рдПрдХ рдЯреЗрдмрд▓ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджреВрд╕рд░реА рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдгрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рддреЗрдЬреА рд╕реЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдмрд╣реБрдд рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдпрд╣ рдзреАрдореА рдХреНрд╡реЗрд░реА, рдЕрддреНрдпрдзрд┐рдХ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд░реИрд╢ рддрдХ рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдбреЗрдЯрд╛-рдбреБрдкреНрд▓реАрдХреЗрд╢рди: рдпрджрд┐ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рди рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ Cartesian products рдРрд╕реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓реАрдХреЗрдЯ рдпрд╛ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧреЗрдВ, рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛-рд╡реНрдпрд╛рдЦреНрдпрд╛ рдмрд┐рдЧрдбрд╝ рд╕рдХрддреА рд╣реИ рдпрд╛ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдЕрдкреЗрдХреНрд╖рд┐рдд рди рд╣реЛрдВ рдпрд╛ рдареАрдХ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рди рдХрд┐рдП рдЬрд╛рдПрдБред
рдбреАрдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдИ: рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рдЬреЙрдЗрди рдХрдВрдбреАрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓рдирд╛тАФрдРрд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд Cartesian products inner рдпрд╛ outer join рдХреЗ рдмрдЬрд╛рдп cross join рдХрд░рд╛ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рд╕реНрд░реЛрдд рдвреВрдБрдврдирд╛ рдФрд░ рд╕реБрдзрд╛рд░рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред
Cartesian Product рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рдпрджреНрдпрдкрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдореЛрдВ рдХреЗ рдХрд╛рд░рдг Cartesian product рдХрд╛ рд╕рдВрдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдбреЗрдЯрд╛-рддрддреНрд╡реЛрдВ рдХреЗ рд╣рд░ рд╕рдВрднрд╡ рдпреБрдЧреНрдо рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рд╕рдВрдпреЛрдЬрди рдкрд░рд┐рджреГрд╢реНрдп
Cartesian product рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░рджрд░реНрд╢рди рдореАрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рдХрд╛рд▓рдиреЗ, рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ, рдпрд╛ рд░реИрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рджреЛ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреА рд╣реЛ, рдЖрдк Cartesian product рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рд╣рд░ рджреВрд╕рд░реЗ рдЖрдЗрдЯрдо рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред┬а
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рд╣рд░ рджреВрд╕рд░реЗ рдХрд░реНрдордЪрд╛рд░реА рд╕реЗ рдХрд░рдиреЗ рд╣реЗрддреБ, Cartesian product рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХрд░реНрдордЪрд╛рд░реА-рдпреБрдЧреНрдо рдмрдирд╛рдПрдЧрд╛:
SELECT
A. employee_name AS Employee1,
B. employee_name AS Employee2
FROM Employees AS A
CROSS JOIN Employees AS B; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдИ-рдХреЙрдорд░реНрд╕ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдореЗрдВ рднреА рдЙрддреНрдкрд╛рдж-рдЫреВрдЯ рдХреЗ рдкреВрд░реЗ рджрд╛рдпрд░реЗ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ Products рдФрд░ Discounts рдЯреЗрдмрд▓ рд╣реИрдВ, рддреЛ cross join рд╕рднреА рдЙрддреНрдкрд╛рдж-рдЫреВрдЯ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ:
SELECT
Products. product_name,
Discounts. discount_type
FROM Products
CROSS JOIN Discounts; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдФрд░ рд╡реИрд▓рд┐рдбреЗрд╢рди
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рджреГрд╢реНрдп-рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди OS, рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреНрд╕ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, cross-join рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рд╕рдВрднрд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рдЦрд╛ рдЬрд╛рдПред
SELECT
OS. name AS OperatingSystem,
Device. name AS Device,
Browser. name AS Browser
FROM OperatingSystems AS OS
CROSS JOIN Devices AS Device
CROSS JOIN Browsers AS Browser; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдбреЗрдЯрд╛ рдкреВрд░реНрдгрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рд▓реБрдкреНтАНрдд рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреИрдирд┐рдХ рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рд╣рд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореМрдЬреВрдж рд╣реИ, рдЖрдк Products рдФрд░ Dates рдЯреЗрдмрд▓ рдХрд╛ Cartesian product рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛ рдХреЛ рд▓реЗрдлреНрдЯ-рдЬреЙрдЗрди рдХрд░ рд▓рд╛рдкрддрд╛ рддрд┐рдерд┐-рдЙрддреНрдкрд╛рдж рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SELECT
Dates. date ,
Products. product_name,
Sales. sales_amount
FROM Dates
CROSS JOIN Products
LEFT JOIN
Sales ON Dates. date = Sales. date
AND Products. product_name = Sales. product_name
WHERE Sales. sales_amount IS NULL ; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░
рдХреНрдпреЛрдВрдХрд┐ Cartesian products рджреЛ рдЯреЗрдмрд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛-рд╕рдВрдпреЛрдЬрди рдмрдирд╛рддреЗ рд╣реИрдВ, рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди-рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖ рд╕рдХрддреА рд╣реИрдВред рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди рдФрд░ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдБ рддрд╛рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗред
рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди
Cartesian products рд╡рд╛рд▓реА рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рджрдХреНрд╖рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдкрдВрдХреНрддрд┐-рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ: Cartesian product рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП cross join рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рдЧрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, WHERE рдХреНрд▓реЙрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛рд╕реЗрдЯ рдиреНрдпреВрдирддрдо рд╣реЛред
SELECT рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрд▓рдо рдЪреБрдиреЗрдВ: Cartesian product рдХрд░рддреЗ рд╕рдордп SELECT рдХреНрд▓реЙрдЬрд╝ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓рдо рд╣реА рдЪреБрдиреЗрдВ рддрд╛рдХрд┐ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдШрдЯреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗред SELECT * рд╕реЗ рдмрдЪреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдХреЙрд▓рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рднрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╢рд░реНрддреЗрдВ рд▓рдЧрд╛рдХрд░ Cross Join рдХреЛ Inner Join рдореЗрдВ рдмрджрд▓реЗрдВ: рдпрджрд┐ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдВ, рддреЛ рдРрд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд░реНрддреЗрдВ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ INNER JOIN рдЬреИрд╕реА рдХрд╛рд░реНрдп рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рддрдп рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ: рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрдХрд░ рдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВред рдпрд╣ рдореЗрдореЛрд░реА рдУрд╡рд░рдлреНрд▓реЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рдХрд░ рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИред
рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдмрдВрдзрди
Cartesian products рд╕реЗ рдмрдиреЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ: рдЕрдХреНрд╕рд░ рдЬреЛрдбрд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓рдореНрд╕ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдмрдбрд╝реЗ рдЯреЗрдмрд▓реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдкреЗрдпрд░ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗред рдпрджреНрдпрдкрд┐ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ cross joins рдХреЛ рд╕реАрдзреЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рддреА, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЬрдм рдЖрдк Cartesian product рдХреЛ рдЕрдиреНрдп рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдЬреЙрдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддрдм рдпрд╣ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рддреЗрдЬрд╝ рдмрдирд╛рддреА рд╣реИред
рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрди (Partitioning): Partitioning Cartesian product рд╡рд╛рд▓реА рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЯреЗрдмрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдореНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫреЛрдЯреЗ, рдкреНрд░рдмрдВрдзрдиреАрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ partitions рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдореА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕реАрдорд┐рдд рдХрд░реЗрдВ: рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рд╕рддреНрдпрд╛рдкрди рд╣реЗрддреБ рдирдореВрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ LIMIT рдХреНрд▓реЙрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд▓реМрдЯрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рд░рд╣реЗред
рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ: рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ Cartesian product рдХреЛ рдХрдИ рдмрд╛рд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреБрдирд░реНрдЧрдгрдирд╛ рдШрдЯреЗ рдФрд░ рдЕрдЧрд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ рддреЗрдЬрд╝ рд╣реЛрдВред
рдЕрдиреНрдп рд╕рд╣рд╛рдпрдХ SQL рдСрдкрд░реЗрд╢рдВрд╕
рдЬрд╣рд╛рдБ рдкреВрд░реНрдг Cartesian product рдмрдирд╛рдирд╛ рдХреБрд╢рд▓ рди рд╣реЛ, рд╡рд╣рд╛рдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рдореМрдЬреВрдж рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрд░реАрдХреЗ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдмреЛрдЭ рдбрд╛рд▓реЗред
Inner рдФрд░ Outer Joins
INNER JOIN рдХреЗрд╡рд▓ рд╡рд╣реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдореНрд╕ рдореЗрдВ рдореЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ Cartesian product рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдмрд╣реБ-рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рддреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЪрд╛рд╣рд┐рдП рдЬреЛ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирджрдВрдб рдкреВрд░рд╛ рдХрд░рддреА рд╣реЛрдВ, рддрдм inner join рдЙрдкрдпреБрдХреНрдд рд╣реИред┬а
рдиреАрдЪреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, INNER JOIN рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рдЫреВрдЯреЛрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╢реНрд░реЗрдгреА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред
SELECT
A. product_name,
B. discount_type
FROM Products AS A
INNER JOIN Discounts AS B ON A. category_id = B. category_id; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Outer join (LEFT JOIN, RIGHT JOIN, рдФрд░ FULL JOIN) рдПрдХ рдпрд╛ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рдФрд░ рди рдорд┐рд▓рддреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рджреВрд╕рд░реА рдХреА рдХреЗрд╡рд▓ рдореЗрд▓ рдЦрд╛рддреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрдкрд░рдВрддреБ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрди рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗтАФрддрдм рдпрд╣ рддрдХрдиреАрдХ рд╕рд╣рд╛рдпрдХ рд╣реИред Outer join рддрдм рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрдм рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реЗрддреБ рдмрд┐рдирд╛-рдореИрдЪ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг Cartesian рдкреЗрдпрд░рд┐рдВрдЧ рдирд╣реАрдВред
рдиреАрдЪреЗ рдХреА рдХреНрд╡реЗрд░реА рдореЗрдВ LEFT JOIN рд╕рднреА рдЙрддреНрдкрд╛рдж рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╡реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдЫреВрдЯ рдирд╣реАрдВ рд╣реИ; рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ NULL рдорд╛рди рдЖрддреЗ рд╣реИрдВред
SELECT
A. product_name,
B. discount_type
FROM Products AS A
LEFT JOIN Discounts AS B ON A. category_id = B. category_id; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЯреЗрдмрд▓реНрд╕ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдХрдИ рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдП, рдпрд╣ рдФрд░ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ DataCamp рдХрд╛ Introduction to SQL Server рдХреЛрд░реНрд╕ рд╕реБрдЭрд╛рддрд╛/рд╕реБрдЭрд╛рддреА рд╣реВрдБред
Subqueries рдФрд░ CTEs
Subqueries рдЖрдкрдХреЛ рдПрдХ рдЯреЗрдмрд▓ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдЪреБрдирдиреЗ рдФрд░ рдЙрд╕реЗ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рддрдХ рдбреЗрдЯрд╛ рд╕реАрдорд┐рдд рдХрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛ рдпрд╛ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рд╣реЛрдВ, рддрдм subqueries рдЙрдкрдпреЛрдЧреА рд╣реИрдВтАФрдмрд┐рдирд╛ рдкреВрд░реНрдг Cartesian join рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред
рдпрд╣ subquery рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рд╡рд╛рд▓реА рдЫреВрдЯреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдШрдЯрддреА рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ cross join рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
SELECT
A. product_name,
B. discount
FROM Products AS A
INNER JOIN
( SELECT discount, category_id
FROM Discounts
WHERE discount > 10 ) AS B
ON A. category_id = B. category_id; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
CTEs, рдпрд╛ WITH рдХреНрд▓реЙрдЬрд╝, рдЬрдЯрд┐рд▓ рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрдиреЗ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рддрд░реАрдХрд╛ рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдПрдЧреНрд░реАрдЧреЗрдЯ рдХрд░ Cartesian products рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдмрд╣реБ-рдЪрд░рдгреАрдп рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрд╡рд┐рд╢реЗрд╖рдХрд░ рдкреВрд░реНрд╡-рдПрдЧреНрд░реАрдЧреЗрд╢рди рдпрд╛ рдХрдИ рдЬреЙрдЗрдиреЛрдВ рдХреЗ рд╕рд╛рдетАФрдкрд░ рдкреВрд░реНрдг Cartesian рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрдм CTEs рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
рдиреАрдЪреЗ рдХреА рдХреНрд╡реЗрд░реА Common Table Expression (CTE) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ 10 рд╕реЗ рдЕрдзрд┐рдХ рдЫреВрдЯреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдЬреЙрдЗрди рдХрд░рддреА рд╣реИред
WITH FilteredDiscounts AS (
SELECT discount, category_id
FROM Discounts
WHERE discount > 10
)
SELECT
A. product_name,
FD. discount
FROM Products AS A
INNER JOIN
FilteredDiscounts AS FD ON A. category_id = FD. category_id; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Cartesian Product рдХреЗ рдирд╡рд╛рдЪрд╛рд░реА рдЙрдкрдпреЛрдЧ
рдпрджреНрдпрдкрд┐ Cartesian product рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдмреБрдирд┐рдпрд╛рджреА SQL рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдгреЛрдВ рд╕реЗ рдкрд░реЗ рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рдФрд░ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА
рдордЬрдмреВрдд рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд┐рдз рдФрд░ рд╡реНрдпрд╛рдкрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреЗ рд╣реИрдВред Cartesian products рдлреАрдЪрд░-рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рд╡рд╛рд▓рд╛ рдкреВрд░реНрдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рд╕реЗ рд╕реАрдЦ рд╕рдХреЗред┬а
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзреЛрдЦрд╛рдзрдбрд╝реА-рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдк рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рдЯрд╛рдЗрдкреНрд╕, рдХреНрд╖реЗрддреНрд░ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЯрд╛рдЗрдкреНрд╕ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд░ рд╕рдХреЗред
рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди
рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рд░рдХреНрд╖рд╛ рд╣реЗрддреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Cartesian products рд╡рд┐рд╡рд┐рдз рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рдореБрд▓реЗрд╢рдиреНрд╕ рд╕реЗ рд▓реЗрдХрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдСрдЧреНрдореЗрдВрдЯреЗрд╢рди рддрдХ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рддреНрддреАрдп рд╕рд┐рдореБрд▓реЗрд╢рдиреНрд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЬрд╝рд╛рд░ рд╕реНрдерд┐рддрд┐рдпреЛрдВ, рдмреНрдпрд╛рдЬ рджрд░реЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдореЙрдбрд▓ рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрди рдЪрд░ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ SQL рдореЗрдВ, рдпреВрдБ рдХрд╣реЗрдВ рдХрд┐, тАЬрдХреБрдЫ рднреА рдирд╣реАрдВтАЭ рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдлрд┐рд░ CROSS JOIN рд╕реЗ рдЙрд╕реЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЫреЛрдЯреА рдЯреЗрдмрд▓ рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдЖрдпрд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ рдФрд░ рдЬрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ cross-join рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрди рдорд┐рд▓рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг 1: рдХрдИ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк рдмрд╛рдЬрд╝рд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐, рдмреНрдпрд╛рдЬ рджрд░реЗрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрд╛рдо рдХреЛ Common Table Expression (CTE) рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓ рдореЗрдВ рд▓рд┐рдЯрд░рд▓ рд╡реИрд▓реНрдпреВрдЬрд╝ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, CROSS JOIN рдЙрдиреНрд╣реЗрдВ рд╣рд░ рд╕рдВрднрд╡ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдорд┐рд▓рд╛ рджреЗрддрд╛ рд╣реИ:
WITH MarketConditions AS (
SELECT 'Bull' AS condition
UNION ALL
SELECT 'Bear'
UNION ALL
SELECT 'Sideways'
) ,
InterestRates AS (
SELECT 1.5 AS rate
UNION ALL
SELECT 2.0
UNION ALL
SELECT 3.25
) ,
CustomerProfiles AS (
SELECT 'Younger' AS profile
UNION ALL
SELECT 'Mid-career'
UNION ALL
SELECT 'Retired'
)
SELECT
mc. condition,
ir. rate,
cp. profile
FROM
MarketConditions mc
CROSS JOIN
InterestRates ir
CROSS JOIN
CustomerProfiles cp; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдореЗрдВ 3├Ч3├Ч3 = 27 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдмрд╛рдЬрд╝рд╛рд░-рд╕реНрдерд┐рддрд┐, рдмреНрдпрд╛рдЬ рджрд░ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдпреЛрдЬрди рд╣реИред
Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
рдЙрджрд╛рд╣рд░рдг 2: рд╕реАрдХреНрд╡реЗрдВрд╕ рдпрд╛ рд╕рд╛рдзрд╛рд░рдг VALUES рд╕реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛
рдПрдХ рдФрд░ рддрдХрдиреАрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЫреЛрдЯреА рдЯреЗрдмрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ cross-join рдХрд░рдХреЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реЗрдВрдЬ рдпрд╛ рд╕рдордп-рдЕрдВрддрд░рд╛рд▓ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛рдПрдБред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА 1 рд╕реЗ 10 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рдмрдирд╛рддреА рд╣реИред
WITH
Nums AS (
SELECT 1 AS n
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 10
)
SELECT n
FROM Nums; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕реАрдХреНрд╡реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реА 10-рдкрдВрдХреНрддрд┐ рд╕реЗрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ cross join рдХрд░ 10├Ч10=100 рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
WITH
Nums AS (
SELECT 1 AS n
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 10
)
SELECT A. n AS n1, B. n AS n2
FROM Nums A
CROSS JOIN Nums B
ORDER BY A. n, B. n; рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрдкрдХреЛ 100 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреА, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА (n1,n2) рд╣реЛрдЧреАред рдЖрдк рдЗрд╕ рд▓реЙрдЬрд┐рдХ рдХреЛ рд╕реИрдХрдбрд╝реЛрдВ, рд╣рдЬрд╝рд╛рд░реЛрдВ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рд▓рд╛рдЦреЛрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВтАФрд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВред
рдЗрди рддрд░реАрдХреЛрдВтАФрдЖрдпрд╛рдо-рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЗрддреБ CTEs (рдпрд╛ VALUES рдХреНрд▓реЙрдЬрд╝) рдФрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП CROSS JOINтАФрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реБрдП SQL рдореЗрдВ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
SQL рдореЗрдВ Cartesian product рдХреЛ рд╕рдордЭрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рдЦреЛрд▓рддрд╛ рд╣реИред рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдирд┐рдкреБрдг рд╣реЛрдХрд░, рдЖрдк рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЙрдиреНрдирдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ SQL Server Fundamentals рд╕реНрдХрд┐рд▓ рдЯреНрд░реИрдХ рджреЗрдЦреЗрдВ рдФрд░ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдмрдврд╝рд╛рдПрдБред┬а
рдЖрдкрдХреЗ рдХрд░рд┐рдпрд░ рджрд┐рд╢рд╛-рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдБрдЧрд╛/рджреВрдБрдЧреА рдХрд┐ рдЖрдк рдпрд╛ рддреЛ DataCamp рдХрд╛ Associate Data Analyst in SQL рдХрд░рд┐рдпрд░ рдЯреНрд░реИрдХ рдЬреЙрдЗрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕реНрдЯ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджреНрдпреЛрдЧ-рд╕реНрддрд░реАрдп рдХреМрд╢рд▓ рд╕реАрдЦ рд╕рдХреЗрдВ, рдпрд╛ рд╣рдорд╛рд░рд╛ Associate Date Engineer in SQL рдХрд░рд┐рдпрд░ рдЯреНрд░реИрдХ рдЖрдЬрд╝рдорд╛рдПрдБ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░ рдмрди рд╕рдХреЗрдВред┬а
Cartesian product SQL рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рднреА рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рднреАред рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭрдирд╛ рдЖрдкрдХреА рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╛рдлреА рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдо Cartesian products рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╡ рдЙрджрд╛рд╣рд░рдг рджреЗрдВрдЧреЗред┬а
рдпрджрд┐ рдЖрдк SQL рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдПрдХ рдордЬрдмреВрдд рдиреАрдВрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ Intermediate SQL рдХреЛрд░реНрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред рд╕рд╛рде рд╣реА, рдбрд╛рдЙрдирд▓реЛрдб рдпреЛрдЧреНрдп SQL Basics Cheat Sheet рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдВрджрд░реНрдн рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп SQL рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Cartesian Product рдХреНрдпрд╛ рд╣реИ?
SQL рдореЗрдВ Cartesian product рд╡рд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдСрдкрд░реЗрд╢рди рдкреНрд░рд╛рдпрдГ
CROSS JOINрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдЯреЗрдмрд▓реЛрдВ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдпреБрдЧреНрдореЛрдВ рд╡рд╛рд▓рд╛ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдмрдбрд╝реА рдкрдВрдХреНрддрд┐-рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рдбреЗрд╡рд▓рдкрд░ рд╕рдВрднрд╡рддрдГ рдкрд╣рд▓реА рдмрд╛рд░ Cartesian product рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рдЬреЙрдЗрди рдХрдВрдбреАрд╢рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдиреЗ рдкрд░ рд╣реА рдЦреЛрдЬрддреЗ рд╣реИрдВтАФрдФрд░ рдЕрдВрддрддрдГ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдкрд╛ рдмреИрдарддреЗ рд╣реИрдВредрдЧрдгрд┐рддреАрдп рдкреГрд╖реНтАНрдарднреВрдорд┐
рдЧрдгрд┐рдд рдореЗрдВ, Cartesian product (A ├Ч B) рд╡рд╣ рд╕рдореБрдЪреНрдЪрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдореБрдЪреНрдЪрдп A рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рдпрд╡ рдХреЛ рд╕рдореБрдЪреНрдЪрдп B рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рдпрд╡ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдП рдЧрдП рд╕рднреА рд╕рдВрднрд╡ рдХреНрд░рдордмрджреНрдз рдпреБрдЧреНрдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред SQL рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ред
Cartesian product рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
SQL cross join
SQL рдореЗрдВ cross join рдСрдкрд░реЗрд╢рди рдкрд╣рд▓реЗ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реЗ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ Cartesian product рдмрдирд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, cross-join рдбреЗрдЯрд╛ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП SQL рдореЗрдВ cross join рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдЯреЗрдмрд▓ рд╣реИрдВ,
StudentsрдФрд░Courses:Students рдЯреЗрдмрд▓
Courses рдЯреЗрдмрд▓
рдирд┐рдореНрди рдХреНрд╡реЗрд░реА рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЛ рд╣рд░ рдХреЛрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдирдХрд╛ рдЧреНрд░реЗрдб рдФрд░ рдХрдард┐рдирд╛рдИ рд╕реНрддрд░ рджрд┐рдЦрддрд╛ рд╣реИред
SQL рдореЗрдВ cross join рд╕реЗ рдЙрддреНрдкрдиреНрди Cartesian product рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
SQL рдореЗрдВ Cartesian Product рдХрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдХрдм рдирд╣реАрдВ
рдЬрдм рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдХрд░ рдФрд░ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрд╡рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ SQL рдореЗрдВ Cartesian product рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдгреЛрдВ (рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдореЛрдВ) рдХреЛ рджреЗрдЦреЗрдВред
рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдг
рдирд┐рдореНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдо
рдпрджреНрдпрдкрд┐ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ Cartesian product рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рдХреЗ рдХреБрдЫ рдЬреЛрдЦрд┐рдо рднреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
Cartesian Product рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рдпрджреНрдпрдкрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рдЬреЛрдЦрд┐рдореЛрдВ рдХреЗ рдХрд╛рд░рдг Cartesian product рдХрд╛ рд╕рдВрдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдбреЗрдЯрд╛-рддрддреНрд╡реЛрдВ рдХреЗ рд╣рд░ рд╕рдВрднрд╡ рдпреБрдЧреНрдо рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рд╕рдВрдпреЛрдЬрди рдкрд░рд┐рджреГрд╢реНрдп
Cartesian product рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░рджрд░реНрд╢рди рдореАрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рдХрд╛рд▓рдиреЗ, рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ, рдпрд╛ рд░реИрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рджреЛ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреА рд╣реЛ, рдЖрдк Cartesian product рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рд╣рд░ рджреВрд╕рд░реЗ рдЖрдЗрдЯрдо рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред┬а
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рд╣рд░ рджреВрд╕рд░реЗ рдХрд░реНрдордЪрд╛рд░реА рд╕реЗ рдХрд░рдиреЗ рд╣реЗрддреБ, Cartesian product рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХрд░реНрдордЪрд╛рд░реА-рдпреБрдЧреНрдо рдмрдирд╛рдПрдЧрд╛:
рдИ-рдХреЙрдорд░реНрд╕ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдореЗрдВ рднреА рдЙрддреНрдкрд╛рдж-рдЫреВрдЯ рдХреЗ рдкреВрд░реЗ рджрд╛рдпрд░реЗ рдХреА рдкрдбрд╝рддрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕
ProductsрдФрд░DiscountsрдЯреЗрдмрд▓ рд╣реИрдВ, рддреЛ cross join рд╕рднреА рдЙрддреНрдкрд╛рдж-рдЫреВрдЯ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ:рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдФрд░ рд╡реИрд▓рд┐рдбреЗрд╢рди
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рджреГрд╢реНрдп-рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди OS, рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреНрд╕ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, cross-join рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рд╕рдВрднрд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рдЦрд╛ рдЬрд╛рдПред
рдбреЗрдЯрд╛ рдкреВрд░реНрдгрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cartesian product рд▓реБрдкреНтАНрдд рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреИрдирд┐рдХ рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рд╣рд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореМрдЬреВрдж рд╣реИ, рдЖрдк
ProductsрдФрд░DatesрдЯреЗрдмрд▓ рдХрд╛ Cartesian product рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛ рдХреЛ рд▓реЗрдлреНрдЯ-рдЬреЙрдЗрди рдХрд░ рд▓рд╛рдкрддрд╛ рддрд┐рдерд┐-рдЙрддреНрдкрд╛рдж рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░
рдХреНрдпреЛрдВрдХрд┐ Cartesian products рджреЛ рдЯреЗрдмрд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛-рд╕рдВрдпреЛрдЬрди рдмрдирд╛рддреЗ рд╣реИрдВ, рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди-рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖ рд╕рдХрддреА рд╣реИрдВред рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди рдФрд░ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдБ рддрд╛рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗред
рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди
Cartesian products рд╡рд╛рд▓реА рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рджрдХреНрд╖рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдкрдВрдХреНрддрд┐-рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ: Cartesian product рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП cross join рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рдЧрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
WHEREрдХреНрд▓реЙрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛рд╕реЗрдЯ рдиреНрдпреВрдирддрдо рд╣реЛредSELECT рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрд▓рдо рдЪреБрдиреЗрдВ: Cartesian product рдХрд░рддреЗ рд╕рдордп
SELECTрдХреНрд▓реЙрдЬрд╝ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓рдо рд╣реА рдЪреБрдиреЗрдВ рддрд╛рдХрд┐ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдШрдЯреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗредSELECT *рд╕реЗ рдмрдЪреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдХреЙрд▓рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рднрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрд╢рд░реНрддреЗрдВ рд▓рдЧрд╛рдХрд░ Cross Join рдХреЛ Inner Join рдореЗрдВ рдмрджрд▓реЗрдВ: рдпрджрд┐ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдВ, рддреЛ рдРрд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд░реНрддреЗрдВ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ
INNER JOINрдЬреИрд╕реА рдХрд╛рд░реНрдп рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рддрдп рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ: рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрдХрд░ рдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВред рдпрд╣ рдореЗрдореЛрд░реА рдУрд╡рд░рдлреНрд▓реЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рдХрд░ рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИред
рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдмрдВрдзрди
Cartesian products рд╕реЗ рдмрдиреЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ: рдЕрдХреНрд╕рд░ рдЬреЛрдбрд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓рдореНрд╕ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдмрдбрд╝реЗ рдЯреЗрдмрд▓реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдкреЗрдпрд░ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд░реЗред рдпрджреНрдпрдкрд┐ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ cross joins рдХреЛ рд╕реАрдзреЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рддреА, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЬрдм рдЖрдк Cartesian product рдХреЛ рдЕрдиреНрдп рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдЬреЙрдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддрдм рдпрд╣ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рддреЗрдЬрд╝ рдмрдирд╛рддреА рд╣реИред
рдмрдбрд╝реА рдЯреЗрдмрд▓реЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрди (Partitioning): Partitioning Cartesian product рд╡рд╛рд▓реА рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЯреЗрдмрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдореНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫреЛрдЯреЗ, рдкреНрд░рдмрдВрдзрдиреАрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ partitions рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдореА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕реАрдорд┐рдд рдХрд░реЗрдВ: рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рд╕рддреНрдпрд╛рдкрди рд╣реЗрддреБ рдирдореВрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ
LIMITрдХреНрд▓реЙрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд▓реМрдЯрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рд░рд╣реЗредрдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ: рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ Cartesian product рдХреЛ рдХрдИ рдмрд╛рд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреБрдирд░реНрдЧрдгрдирд╛ рдШрдЯреЗ рдФрд░ рдЕрдЧрд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ рддреЗрдЬрд╝ рд╣реЛрдВред
рдЕрдиреНрдп рд╕рд╣рд╛рдпрдХ SQL рдСрдкрд░реЗрд╢рдВрд╕
рдЬрд╣рд╛рдБ рдкреВрд░реНрдг Cartesian product рдмрдирд╛рдирд╛ рдХреБрд╢рд▓ рди рд╣реЛ, рд╡рд╣рд╛рдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рдореМрдЬреВрдж рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрд░реАрдХреЗ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдмреЛрдЭ рдбрд╛рд▓реЗред
Inner рдФрд░ Outer Joins
INNER JOINрдХреЗрд╡рд▓ рд╡рд╣реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдореНрд╕ рдореЗрдВ рдореЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ Cartesian product рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдмрд╣реБ-рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рддреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЪрд╛рд╣рд┐рдП рдЬреЛ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирджрдВрдб рдкреВрд░рд╛ рдХрд░рддреА рд╣реЛрдВ, рддрдм inner join рдЙрдкрдпреБрдХреНрдд рд╣реИред┬ардиреАрдЪреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
INNER JOINрдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рдЫреВрдЯреЛрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╢реНрд░реЗрдгреА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВредOuter join (
LEFT JOIN,RIGHT JOIN, рдФрд░FULL JOIN) рдПрдХ рдпрд╛ рджреЛрдиреЛрдВ рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рдФрд░ рди рдорд┐рд▓рддреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рдПрдХ рдЯреЗрдмрд▓ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рджреВрд╕рд░реА рдХреА рдХреЗрд╡рд▓ рдореЗрд▓ рдЦрд╛рддреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрдкрд░рдВрддреБ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрди рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗтАФрддрдм рдпрд╣ рддрдХрдиреАрдХ рд╕рд╣рд╛рдпрдХ рд╣реИред Outer join рддрдм рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрдм рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реЗрддреБ рдмрд┐рдирд╛-рдореИрдЪ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг Cartesian рдкреЗрдпрд░рд┐рдВрдЧ рдирд╣реАрдВредрдиреАрдЪреЗ рдХреА рдХреНрд╡реЗрд░реА рдореЗрдВ
LEFT JOINрд╕рднреА рдЙрддреНрдкрд╛рдж рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╡реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдЫреВрдЯ рдирд╣реАрдВ рд╣реИ; рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВNULLрдорд╛рди рдЖрддреЗ рд╣реИрдВредрдЯреЗрдмрд▓реНрд╕ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдХрдИ рдЯреЗрдмрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдП, рдпрд╣ рдФрд░ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ DataCamp рдХрд╛ Introduction to SQL Server рдХреЛрд░реНрд╕ рд╕реБрдЭрд╛рддрд╛/рд╕реБрдЭрд╛рддреА рд╣реВрдБред
Subqueries рдФрд░ CTEs
Subqueries рдЖрдкрдХреЛ рдПрдХ рдЯреЗрдмрд▓ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдЪреБрдирдиреЗ рдФрд░ рдЙрд╕реЗ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рддрдХ рдбреЗрдЯрд╛ рд╕реАрдорд┐рдд рдХрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрдВрдХреНрддрд┐-рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛ рдпрд╛ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рд╣реЛрдВ, рддрдм subqueries рдЙрдкрдпреЛрдЧреА рд╣реИрдВтАФрдмрд┐рдирд╛ рдкреВрд░реНрдг Cartesian join рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред
рдпрд╣ subquery рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рд╡рд╛рд▓реА рдЫреВрдЯреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдШрдЯрддреА рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ cross join рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
CTEs, рдпрд╛
WITHрдХреНрд▓реЙрдЬрд╝, рдЬрдЯрд┐рд▓ рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрдиреЗ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рддрд░реАрдХрд╛ рдЬреЙрдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдПрдЧреНрд░реАрдЧреЗрдЯ рдХрд░ Cartesian products рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдмрд╣реБ-рдЪрд░рдгреАрдп рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрд╡рд┐рд╢реЗрд╖рдХрд░ рдкреВрд░реНрд╡-рдПрдЧреНрд░реАрдЧреЗрд╢рди рдпрд╛ рдХрдИ рдЬреЙрдЗрдиреЛрдВ рдХреЗ рд╕рд╛рдетАФрдкрд░ рдкреВрд░реНрдг Cartesian рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрдм CTEs рдЙрдкрдпреБрдХреНрдд рд╣реИрдВредрдиреАрдЪреЗ рдХреА рдХреНрд╡реЗрд░реА Common Table Expression (CTE) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ 10 рд╕реЗ рдЕрдзрд┐рдХ рдЫреВрдЯреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдЬреЙрдЗрди рдХрд░рддреА рд╣реИред
Cartesian Product рдХреЗ рдирд╡рд╛рдЪрд╛рд░реА рдЙрдкрдпреЛрдЧ
рдпрджреНрдпрдкрд┐ Cartesian product рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдмреБрдирд┐рдпрд╛рджреА SQL рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧ-рдкреНрд░рдХрд░рдгреЛрдВ рд╕реЗ рдкрд░реЗ рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рдФрд░ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА
рдордЬрдмреВрдд рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд┐рдз рдФрд░ рд╡реНрдпрд╛рдкрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреЗ рд╣реИрдВред Cartesian products рдлреАрдЪрд░-рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рд╡рд╛рд▓рд╛ рдкреВрд░реНрдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рд╕реЗ рд╕реАрдЦ рд╕рдХреЗред┬а
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзреЛрдЦрд╛рдзрдбрд╝реА-рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдк рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рдЯрд╛рдЗрдкреНрд╕, рдХреНрд╖реЗрддреНрд░ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЯрд╛рдЗрдкреНрд╕ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд░ рд╕рдХреЗред
рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди
рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рд░рдХреНрд╖рд╛ рд╣реЗрддреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Cartesian products рд╡рд┐рд╡рд┐рдз рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рдореБрд▓реЗрд╢рдиреНрд╕ рд╕реЗ рд▓реЗрдХрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдСрдЧреНрдореЗрдВрдЯреЗрд╢рди рддрдХ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рддреНрддреАрдп рд╕рд┐рдореБрд▓реЗрд╢рдиреНрд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЬрд╝рд╛рд░ рд╕реНрдерд┐рддрд┐рдпреЛрдВ, рдмреНрдпрд╛рдЬ рджрд░реЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдореЙрдбрд▓ рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрди рдЪрд░ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ SQL рдореЗрдВ, рдпреВрдБ рдХрд╣реЗрдВ рдХрд┐, тАЬрдХреБрдЫ рднреА рдирд╣реАрдВтАЭ рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдлрд┐рд░
CROSS JOINрд╕реЗ рдЙрд╕реЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЫреЛрдЯреА рдЯреЗрдмрд▓ рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдЖрдпрд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ рдФрд░ рдЬрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ cross-join рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрди рдорд┐рд▓рддреЗ рд╣реИрдВредрдЙрджрд╛рд╣рд░рдг 1: рдХрдИ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк рдмрд╛рдЬрд╝рд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐, рдмреНрдпрд╛рдЬ рджрд░реЗрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрд╛рдо рдХреЛ Common Table Expression (CTE) рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓ рдореЗрдВ рд▓рд┐рдЯрд░рд▓ рд╡реИрд▓реНрдпреВрдЬрд╝ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░,
CROSS JOINрдЙрдиреНрд╣реЗрдВ рд╣рд░ рд╕рдВрднрд╡ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдорд┐рд▓рд╛ рджреЗрддрд╛ рд╣реИ:рдкрд░рд┐рдгрд╛рдо-рд╕реЗрдЯ рдореЗрдВ 3├Ч3├Ч3 = 27 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдмрд╛рдЬрд╝рд╛рд░-рд╕реНрдерд┐рддрд┐, рдмреНрдпрд╛рдЬ рджрд░ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдпреЛрдЬрди рд╣реИред
Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
рдЙрджрд╛рд╣рд░рдг 2: рд╕реАрдХреНрд╡реЗрдВрд╕ рдпрд╛ рд╕рд╛рдзрд╛рд░рдг VALUES рд╕реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛
рдПрдХ рдФрд░ рддрдХрдиреАрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЫреЛрдЯреА рдЯреЗрдмрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ cross-join рдХрд░рдХреЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реЗрдВрдЬ рдпрд╛ рд╕рдордп-рдЕрдВрддрд░рд╛рд▓ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛рдПрдБред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА 1 рд╕реЗ 10 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рдмрдирд╛рддреА рд╣реИред
рд╕реАрдХреНрд╡реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдореЗрдВ Cartesian product рдХрд╛ рдЙрдкрдпреЛрдЧред рдЪрд┐рддреНрд░: рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ред
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реА 10-рдкрдВрдХреНрддрд┐ рд╕реЗрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реЗ cross join рдХрд░ 10├Ч10=100 рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрдкрдХреЛ 100 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреА, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА (n1,n2) рд╣реЛрдЧреАред рдЖрдк рдЗрд╕ рд▓реЙрдЬрд┐рдХ рдХреЛ рд╕реИрдХрдбрд╝реЛрдВ, рд╣рдЬрд╝рд╛рд░реЛрдВ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рд▓рд╛рдЦреЛрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВтАФрд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВред
рдЗрди рддрд░реАрдХреЛрдВтАФрдЖрдпрд╛рдо-рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЗрддреБ CTEs (рдпрд╛
VALUESрдХреНрд▓реЙрдЬрд╝) рдФрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдПCROSS JOINтАФрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реБрдП SQL рдореЗрдВ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВредрдирд┐рд╖реНрдХрд░реНрд╖
SQL рдореЗрдВ Cartesian product рдХреЛ рд╕рдордЭрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рдЦреЛрд▓рддрд╛ рд╣реИред рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдирд┐рдкреБрдг рд╣реЛрдХрд░, рдЖрдк рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░рд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЙрдиреНрдирдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ SQL Server Fundamentals рд╕реНрдХрд┐рд▓ рдЯреНрд░реИрдХ рджреЗрдЦреЗрдВ рдФрд░ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдмрдврд╝рд╛рдПрдБред┬а
рдЖрдкрдХреЗ рдХрд░рд┐рдпрд░ рджрд┐рд╢рд╛-рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдБрдЧрд╛/рджреВрдБрдЧреА рдХрд┐ рдЖрдк рдпрд╛ рддреЛ DataCamp рдХрд╛ Associate Data Analyst in SQL рдХрд░рд┐рдпрд░ рдЯреНрд░реИрдХ рдЬреЙрдЗрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕реНрдЯ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджреНрдпреЛрдЧ-рд╕реНрддрд░реАрдп рдХреМрд╢рд▓ рд╕реАрдЦ рд╕рдХреЗрдВ, рдпрд╛ рд╣рдорд╛рд░рд╛ Associate Date Engineer in SQL рдХрд░рд┐рдпрд░ рдЯреНрд░реИрдХ рдЖрдЬрд╝рдорд╛рдПрдБ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░ рдмрди рд╕рдХреЗрдВред┬а