MSSQL
HOME > DB > MSSQL
2009.09.04 / 22:13

JOIN À̶õ - LEFT JOIN LEFT OUTER JOIN RIGHT JOIN

¾çÈç
Ãßõ ¼ö 241
Á¦¸ñ¾øÀ½

http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql01&group_name=board&idx_num=18&page=2&category=&search=&b_cat=0&order_c=idx_num&order_da=desc

 

1. JOIN À̶õ?

µ¥ÀÌÅ͸¦ °Ë»öÇÏ´Ù º¸¸é Å×À̺í Çϳª¸¸À» ÀÌ¿ëÇؼ­´Â ¿øÇÏ´Â Á¤º¸¸¦ ´Ù °¡Á®¿ÀÁö ¸øÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ¿¹¸¦ µé¾î »ç¿øÀÇ ±Þ¿© Á¤º¸¸¦ °Ë»öÇÏ´Â °æ¿ì¿¡ [±Þ¿©] Å×ÀÌºí¿¡´Â »ç¿ø ¹øÈ£¿Í ±Þ¿© Á¤º¸¸¸ ÀÖ´Â °æ¿ì »ç¿ø À̸§À» °°ÀÌ °Ë»öÇÏ°íÀÚ ÇÑ´Ù¸é »ç¿ø À̸§À» °¡Áö°í ÀÖ´Â [»ç¿ø] Å×À̺íÀ» ÂüÁ¶ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô Å×À̺íÀ» ¼­·Î ¿¬°áÇÏ¿© °Ë»öÀ» ÇÒ ¶§ »ç¿ëµÇ´Â °ÍÀÌ JOIN ¹® ÀÔ´Ï´Ù.

JOINÀÇ Á¾·ù´Â ´ÙÀ½°ú °°ÀÌ ³ª´­ ¼ö ÀÖ½À´Ï´Ù.

o INNER JOIN
o OUTER JOIN
o FULL JOIN
o CROSS JOIN

ÀÌ Áß¿¡¼­ °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â °ÍÀÌ INNER JOIN ÀÔ´Ï´Ù. ´ÙÀ½ [±×¸² 1]À» ±âÁØÀ¸·Î Çؼ­ À̵é Á¶ÀÎÀÇ ±â´ÉÀ» »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.


[±×¸² 1]

[±×¸² 1]°ú °°ÀÌ [»ç¿ø] Å×À̺í°ú [±Þ¿©] Å×À̺íÀÌ ÀÖ½À´Ï´Ù. ½ÇÁ¦ ¾÷¹«¿Í ´Ù¸¦ ¼ö ÀÖÁö¸¸ Á¶ÀÎÀÇ ±â´ÉÀ» È®ÀÎÇϱâ À§ÇÏ¿© °¡Á¤À» Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. [»ç¿ø] Å×ÀÌºí¿¡´Â »ç¿ø Á¤º¸°¡, [´ëÃâ] Å×ÀÌºí¿¡´Â ´ëÃâ Á¤º¸°¡ ±â·ÏµÇ¾î ÀÖ½À´Ï´Ù.

2. INNER JOIN

INNER JOINÀº ¾çÂÊÀÇ Çàµé Áß¿¡¼­ ¼­·Î ¿¬°üµÈ ³»¿ë¸¸ °Ë»öÇÏ´Â Á¶ÀÎ ¹æ¹ýÀÔ´Ï´Ù. INNER JOINÀ» À§Çؼ­´Â ¿ì¼± [±×¸² 2]ó·³ µÎ Å×ÀÌºí¿¡¼­ °øÅëµÇÁö ¸øÇÑ ºÎºÐÀº JOINÀÇ ´ë»ó¿¡¼­ Á¦¿Ü°¡ µË´Ï´Ù.


[±×¸² 2]

±×¸®°í ³²¾Æ ÀÖ´Â ¾çÂÊÀÇ ÇàµéÀÌ ´ÙÀ½ [±×¸² 3]°ú °°ÀÌ ¼­·Î ¿¬°üµÈ Çàµé³¢¸® °áÇÕÀ» ÇÏ°Ô µË´Ï´Ù.


[±×¸² 3]

°á±¹ ´ÙÀ½ [±×¸² 4]¿Í °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ°Ô µË´Ï´Ù.


[±×¸² 4]

À§ ³»¿ëÀ» INNER JOINÀ» ÀÌ¿ëÇÑ Äõ¸®¹®À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A INNER JOIN ´ëÃâ B ON A.»ç¹ø = B.»ç¹ø


o ÀÌ Äõ¸®¹®¿¡¼­ A¿Í B ´Â [»ç¿ø] Å×À̺í°ú [´ëÃâ] Å×À̺íÀ» °¡¸®Å°´Â Alias ÀÔ´Ï´Ù.
o ON ºÎºÐÀ» º¸¸é µÎ Å×À̺íÀ» '»ç¹ø' À» ÀÌ¿ëÇÏ¿© ¿¬°áÇÏ°í ÀÖ½À´Ï´Ù.

À§ Äõ¸®¹®Àº ´ÙÀ½°ú °°ÀÌ Ç¥Çö ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A JOIN ´ëÃâ B ON A.»ç¹ø = B.»ç¹ø

Áï 'INNER' ¸¦ »ý·«ÇÏ°í ´Ü¼øÈ÷ 'JOIN' ¸¸ »ç¿ëÇصµ 'INNER JOIN'À¸·Î Àνĵ˴ϴÙ. ÀÌ°ÍÀº ´ëºÎºÐÀÇ JOIN ÀÌ INNER JOIN À̱⠶§¹®¿¡ »ç¿ëÀÚÀÇ ÆíÀǸ¦ À§ÇÑ °ÍÀÔ´Ï´Ù.

3. OUTER JOIN

OUTER JOINÀº ÇÑÂÊ Å×À̺íÀ» ±âÁØÀ¸·Î Çؼ­ Á¶ÀÎÀ» Çü¼ºÇÕ´Ï´Ù. ±×·¡¼­ ±âÁØÀÌ µÇ´Â Å×À̺íÀº Á¶ÀεǴ Å×À̺í°ú ¿¬°ü¼ºÀÌ ¾ø´Ù ÇÏ¿©µµ °Ë»öÀÇ ´ë»óÀÌ µË´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î OUTER JOIN¿¡´Â ´ÙÀ½°ú °°ÀÌ µÎ°¡ÁöÀÇ ¹æ¹ýÀÌ Á¸ÀçÇÏ°Ô µË´Ï´Ù.

o LEFT OUTER JOIN (±âº»°ª)
o RIGHT OUTER JOIN

¸¸ÀÏ [»ç¿ø] Å×À̺í°ú [´ëÃâ] Å×À̺íÀ» OUTER JOIN ½Ãų ¶§ [»ç¿ø] Å×À̺íÀ» ±âÁØÀ¸·Î ÇÑ´Ù¸é ´ÙÀ½ [±×¸² 5] ¿Í °°Àº °á°ú¸¦ ¾ò°Ô µË´Ï´Ù.


[±×¸² 5]

À§ ³»¿ëÀ» Äõ¸®¹®À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A LEFT OUTER JOIN ´ëÃâ B ON A.»ç¹ø = B.»ç¹ø

ÇÏÁö¸¸ [´ëÃâ] Å×À̺íÀ» ±âÁØÀ¸·Î ÇÑ´Ù¸é ´ÙÀ½ [±×¸² 6] °ú °°Àº °á°ú¸¦ ¾ò°Ô µË´Ï´Ù.


[±×¸² 6]

À§ ³»¿ëÀ» Äõ¸®¹®À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A RIGHT OUTER JOIN ´ëÃâ B ON A.»ç¹ø = B.»ç¹ø

4. FULL JOIN

FULL JOINÀº [±×¸² 5]¿Í [±×¸² 6]ÀÇ °áÇÕÀ̶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. °áÇÕÀÌ µÇ´Â ¾çÂÊ Å×ÀÌºí¿¡¼­ ¿¬°ü¼ºÀÌ ¾ø´Â Ç൵ Á¶ÀÎÀÇ °á°ú¿¡ Æ÷ÇԵDZ⠶§¹®ÀÔ´Ï´Ù. [»ç¿ø] Å×À̺í°ú [´ëÃâ] Å×À̺íÀÇ FULL JOINÀÇ °á°ú´Â ´ÙÀ½ [±×¸² 7]°ú °°½À´Ï´Ù.


[±×¸² 7]

À§ ³»¿ëÀ» Äõ¸®¹®À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A FULL JOIN ´ëÃâ B ON A.»ç¹ø = B.»ç¹ø

5. CROSS JOIN

CROSS JOINÀº ÇÑÂÊ Å×À̺íÀÇ ¸ðµç Çàµé¿¡ ´ëÇÏ¿© ´Ù¸¥ ÂÊ ÇàµéÀÌ ÀüºÎ ´ëÀÔÀÌ µÇ´Â ÇüÅÂÀÇ Á¶ÀÎÀÔ´Ï´Ù. ¸¸ÀÏ [»ç¿ø] Å×À̺í°ú [´ëÃâ] Å×À̺íÀ» CROSS JOIN ½ÃŲ´Ù¸é [±×¸² 8] °ú °°Àº °¢°¢ ´ëÀԵǾî [±×¸² 9]¿Í °°Àº °á°ú¸¦ ¾ò°Ô µË´Ï´Ù. ´Ü, [±×¸² 8]Àº ù¹ø° Çà¿¡ ´ëÇÑ ´ëÀÔ¸¸À» º¸¿©ÁÖ°í Àִµ¥ ÀÌ·¯ÇÑ ´ëÀÔÀÌ [»ç¿ø] Å×À̺íÀÇ ¸ðµç Çà¿¡ ´ëÇÏ¿© ÀÌ·ç¾îÁö°Ô µË´Ï´Ù.


[±×¸² 8]


[±×¸² 9]

°á±¹ [»ç¿ø] Å×À̺íÀÇ ÇàÀÇ °¹¼ö X [´ëÃâ] Å×À̺íÀÇ ÇàÀÇ °¹¼ö ¸¸Å­ÀÇ ÇàÀÌ CROSS JOINÀÇ °á°ú¸¦ ¾ò¾îÁö°Ô µË´Ï´Ù.

À§ ³»¿ëÀ» Äõ¸®¹®À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°½À´Ï´Ù.

SELECT A.»ç¹ø, A.À̸§, B.µµ¼­
FROM »ç¿ø A CROSS JOIN ´ëÃâ B

Áï, µÎ Å×À̺íÀÇ ¿¬°ü¼ºÀÌ ÀüÇô ÇÊ¿ä¾ø°Ô µÇ¹Ç·Î ON ÀýÀÌ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.

6. Á¤¸®

SELECT ¹®À» »ç¿ë ÇÒ ¶§ °¡Àå ÀÌÇØÇϱâ Èûµç ºÎºÐÀÌ JOIN ÀÌ ¾Æ´Ñ°¡ ½Í½À´Ï´Ù. JOIN ±â´ÉÀ» Àß ÀÍÇô µÎ¸é Á»´õ È¿À²ÀûÀÎ °Ë»öÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. OUTER JOINÀ̳ª FULL JOIN, CROSS JOINÀº Àß »ç¿ëÀÌ µÇÁö ¾Ê½À´Ï´Ù. ±× ÀÌÀ¯´Â ¸¹Àº »ç¶÷µéÀÌ INNER JOIN ±îÁö¸¸ ¹è¿ì°í ´õÀÌ»óÀº JOIN¿¡ ´ëÇÏ¿© ¹è¿ìÁö ¾Ê°í ¹«ÀÛÁ¤ SELECT ¹®À» »ç¿ëÇϱ⠶§¹®ÀÌ ¾Æ´Ñ°¡ ½Í½À´Ï´Ù.

´ÙÀ½ °­Á¿¡¼­´Â ½ÇÁ¦·Î JOINÀ» »ç¿ëÇÏ´Â ¿¹Á¦¸¦ º¸¸é¼­ ´Ù½ÃÇѹø JOIN¿¡ ´ëÇÏ¿© »ìÆ캼 ¿¹Á¤ÀÔ´Ï´Ù. ¿Â¶óÀÎ ¼³¸í¼­(Books Online)À» º¸½Ã¸é JOIN¿¡ ´ëÇÑ ¹æ´ëÇÑ ·®ÀÇ ¼³¸íÀÌ ÀÖ½À´Ï´Ù. ±× ³»¿ëÀ» ²À Âü°íÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.