https://www.w3schools.com/mysql/mysql_join_cross.asp

https://www.w3schools.com/Sql/sql_join_full.asp

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

* w3schools.com ์—์„œ ๊ฐ JOIN์„ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋Š” ๊ทธ๋ฆผ์ด ๋™์ผํ•˜๋‹ค.

 

 

1๏ธโƒฃ ํฌ๋กœ์Šค ์กฐ์ธ (Cross Join)

์„ค๋ช…

  • ํฌ๋กœ์Šค ์กฐ์ธ์€ ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ์ƒ์„ฑํ•˜๋Š” ์กฐ์ธ์ž…๋‹ˆ๋‹ค.
  • ์ฆ‰, ๊ฐ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ๊ณฑํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์˜ ํ–‰ ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์˜ ํ–‰ ์ˆ˜์™€ ๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์˜ ํ–‰ ์ˆ˜์˜ ๊ณฑ์ž…๋‹ˆ๋‹ค.
  • ์ด ์กฐ์ธ์€ ON ์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

  • tableA
    id name
    1 Alice
    2 Bob
  • tableB
    id product
    1 Widget
    2 Gadget
  • ํฌ๋กœ์Šค ์กฐ์ธ ์ฟผ๋ฆฌ
    SELECT *
    FROM tableA
    CROSS JOIN tableB;
  • ๊ฒฐ๊ณผ
    id name id product
    1 Alice 1 Widget
    1 Alice 2 Gadget
    2 Bob 1 Widget
    2 Bob 2 Gadget
  • ํ–‰ ์ˆ˜: 4ํ–‰ (2ํ–‰ * 2ํ–‰)

 

 

2๏ธโƒฃ ํ’€ ์กฐ์ธ (Full Outer Join)

์„ค๋ช…

  • ํ’€ ์กฐ์ธ์€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋ฉฐ, ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” NULL๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰๊ณผ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๊ณ , ๋‘ ํ…Œ์ด๋ธ”์˜ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

  • tableA
    id name
    1 Alice
    2 Bob
  • tableB
    id product
    1 Widget
    3 Gadget
  • ํ’€ ์กฐ์ธ ์ฟผ๋ฆฌ
    SELECT *
    FROM tableA
    FULL OUTER JOIN tableB 
    ON tableA.id = tableB.id; -- ์กฐ์ธ ์กฐ๊ฑด ์„ค์ •โœจ
  • ๊ฒฐ๊ณผ
    id name id product
    1 Alice 1 Widget
    2 Bob NULL NULL
    NULL NULL 3 Gadget
  • ํ–‰ ์ˆ˜: 3ํ–‰ (2ํ–‰ + 1ํ–‰ (tableB์˜ id 3์— ๋Œ€ํ•œ NULL) + 1ํ–‰ (tableA์˜ id 2์— ๋Œ€ํ•œ NULL))
yewon31