Ի՞նչ տեսակների JOIN-ներ գիտես և ինչո՞վ են դրանք տարբերվում:
sobes.tech AI
Պատասխան AI-ից
SQL-ում հիմնական JOIN տեսակները և նրանց տարբերությունները՝
-
INNER JOIN — վերադարձնում է միայն այն գրառումները, որոնք համապատասխանում են երկու աղյուսակներում՝ միացման պայմանով:
-
LEFT JOIN (LEFT OUTER JOIN) — վերադարձնում է բոլոր գրառումները ձախ աղյուսակից և համապատասխանները աջից։ Եթե համապատասխանություն չկա, աջ աղյուսակի դաշտերը կլինեն NULL:
-
RIGHT JOIN (RIGHT OUTER JOIN) — վերադարձնում է բոլոր գրառումները աջ աղյուսակից և համապատասխանները ձախից:
-
FULL JOIN (FULL OUTER JOIN) — վերադարձնում է բոլոր գրառումները երկու աղյուսակներից՝ համապատասխան և անհամապատասխան, NULL-ով այն վայրերում, որտեղ տվյալներ չկան:
-
CROSS JOIN — երկու աղյուսակների քարտեզի բազմապատկում, վերադարձնում է բոլոր հնարավոր տողերի համադրությունները:
Օրինակ՝
-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;
-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;
-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;
Ընտրությունը կախված է այն բանից, թե ինչ տվյալներ եք ուզում ստանալ և ինչպես կառավարել բացակա համապատասխանությունները։