Sobes.tech
Senior

Ի՞նչ տեսակների 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;

Ընտրությունը կախված է այն բանից, թե ինչ տվյալներ եք ուզում ստանալ և ինչպես կառավարել բացակա համապատասխանությունները։