JOIN

μˆ˜μ •Β·2024λ…„ 5μ›” 23일

DBMS

λͺ©λ‘ 보기
8/18

πŸ“Œ JOIN

  • JOIN은 λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ” μ‚¬μ΄μ˜ κ΄€λ ¨ 열을 기반으둜 λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ 행을 κ²°ν•©ν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

πŸ“ INNER JOIN

  • INNER JOIN은 두 ν…Œμ΄λΈ” λͺ¨λ‘μ—μ„œ μΌμΉ˜ν•˜λŠ” 값이 μžˆλŠ” λ ˆμ½”λ“œλ₯Ό μ„ νƒν•œλ‹€.
	SELECT column_name(s)
    	FROM table1
        INNER JOIN table2
        ON table1.column_name = table2.column_name;

πŸ“ LEFT JOIN

  • LEFT JOIN은 μ™Όμͺ½ ν…Œμ΄λΈ”(table1)의 λͺ¨λ“  λ ˆμ½”λ“œλ₯Ό λ°˜ν™˜ν•˜κ³  였λ₯Έμͺ½ ν…Œμ΄λΈ”(table2)μ—μ„œ μΌμΉ˜ν•˜λŠ” λ ˆμ½”λ“œ(μžˆλŠ” 경우)λ₯Ό λ°˜ν™˜ν•œλ‹€.
	SELECT column_name(s)
    	FROM table1
        LEFT JOIN table2
        ON table1.column_name = table2.column_name;
  • LEFT JOIN은 였λ₯Έμͺ½ ν…Œμ΄λΈ”μ— μΌμΉ˜ν•˜λŠ” ν•­λͺ©μ΄ 없더라도 μ™Όμͺ½ ν…Œμ΄λΈ”μ˜ λͺ¨λ“  λ ˆμ½”λ“œλ₯Ό λ°˜ν™˜ν•œλ‹€.

πŸ“ RIGHT JOIN

  • RIGHT JOIN은 였λ₯Έμͺ½ ν…Œμ΄λΈ”(table2)의 λͺ¨λ“  λ ˆμ½”λ“œμ™€ μ™Όμͺ½ ν…Œμ΄λΈ”(table1)의 μΌμΉ˜ν•˜λŠ” λ ˆμ½”λ“œ(μžˆλŠ” 경우)λ₯Ό λ°˜ν™˜ν•œλ‹€.
	SELECT column_name(s)
    	FROM table1
        RIGHT JOIN table2
        ON table1.column_name = table2.column_name;
  • RIGHT JOIN은 μ™Όμͺ½ ν…Œμ΄λΈ”μ— μΌμΉ˜ν•˜λŠ” ν•­λͺ©μ΄ 없더라도 였λ₯Έμͺ½ ν…Œμ΄λΈ”μ˜ λͺ¨λ“  λ ˆμ½”λ“œλ₯Ό λ°˜ν™˜ν•œλ‹€.

πŸ“ CROSS JOIN

  • CROSS JOIN은 λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ 일치 여뢀와 관계 없이 두 ν…Œμ΄λΈ”(table1 및 table2)의 λͺ¨λ“  λ ˆμ½”λ“œλ₯Ό λ°˜ν™˜ν•œλ‹€.
	SELECT column_name(s)
    	FROM table1
        CROSS JOIN table2;
  • CROSS JOIN은 맀우 큰 κ²°κ³Ό 집합을 λ°˜ν™˜ν•  수 μžˆλ‹€.

  • CROSS JOIN에 WHEREμ ˆμ„ μΆ”κ°€ν•˜λ©΄ INNER JOINκ³Ό λ™μΌν•œ κ²°κ³Όλ₯Ό 생성할 수 μžˆλ‹€.

πŸ“ SELF JOIN

  • SELF JOIN은 ν…Œμ΄λΈ”μ΄ 자체적으둜 μ‘°μΈλœλ‹€.
	SELECT column_name(s)
    	FROM table1 T1, table2 T2
        WHERE condition;
  • T1κ³Ό T2λŠ” λ™μΌν•œ ν…Œμ΄λΈ”μ— λŒ€ν•œ μ„œλ‘œ λ‹€λ₯Έ 별칭이닀.

0개의 λŒ“κΈ€