CINXE.COM
Join (SQL) - 위키백과, 우리 모두의 백과사전
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="ko" dir="ltr"> <head> <meta charset="UTF-8"> <title>Join (SQL) - 위키백과, 우리 모두의 백과사전</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )kowikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"ko","wgMonthNames":["","1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"wgRequestId":"689efe03-2b3e-4444-8011-85cbea688493","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Join_(SQL)","wgTitle":"Join (SQL)","wgCurRevisionId":38884360,"wgRevisionId":38884360,"wgArticleId":936300,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["해결되지 않은 속성이 있는 문서","웹아카이브 틀 웨이백 링크","Harv 및 Sfn에 대상이 없는 오류가 있는 문서","위키데이터 속성 P373을 사용하는 문서","위키데이터 속성 P7859를 사용하는 문서","SQL 키워드"],"wgPageViewLanguage":"ko","wgPageContentLanguage":"ko","wgPageContentModel":"wikitext","wgRelevantPageName":"Join_(SQL)","wgRelevantArticleId":936300,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"JOIN_(SQL)","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"ko","pageLanguageDir":"ltr","pageVariantFallbacks":"ko"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgInternalRedirectTargetUrl":"/wiki/Join_(SQL)","wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q2003535","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false}; RLSTATE={"ext.gadget.SectionFont":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.pygments.view","ext.cite.ux-enhancements","ext.scribunto.logs","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.directcommons","ext.gadget.edittools","ext.gadget.refToolbar","ext.gadget.siteNotice","ext.gadget.scrollUpButton","ext.gadget.strikethroughTOC","ext.gadget.switcher","ext.gadget.WikiMiniAtlas","ext.gadget.Calculator","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=ko&modules=ext.cite.styles%7Cext.pygments%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=ko&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=ko&modules=ext.gadget.SectionFont&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=ko&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.20"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Join (SQL) - 위키백과, 우리 모두의 백과사전"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//ko.m.wikipedia.org/wiki/Join_(SQL)"> <link rel="alternate" type="application/x-wiki" title="편집" href="/w/index.php?title=Join_(SQL)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="위키백과 (ko)"> <link rel="EditURI" type="application/rsd+xml" href="//ko.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://ko.wikipedia.org/wiki/Join_(SQL)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.ko"> <link rel="alternate" type="application/atom+xml" title="위키백과 아톰 피드" href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EC%B5%9C%EA%B7%BC%EB%B0%94%EB%80%9C&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Join_SQL rootpage-Join_SQL skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">본문으로 이동</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="사이트"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="주 메뉴" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="주 메뉴" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">주 메뉴</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">주 메뉴</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">사이드바로 이동</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">숨기기</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> 둘러보기 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%8C%80%EB%AC%B8" title="대문으로 가기 [z]" accesskey="z"><span>대문</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EC%B5%9C%EA%B7%BC%EB%B0%94%EB%80%9C" title="위키의 최근 바뀐 목록 [r]" accesskey="r"><span>최근 바뀜</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/%ED%8F%AC%ED%84%B8:%EC%9A%94%EC%A6%98_%ED%99%94%EC%A0%9C" title="최근의 소식 알아 보기"><span>요즘 화제</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EC%9E%84%EC%9D%98%EB%AC%B8%EC%84%9C" title="무작위로 선택된 문서 불러오기 [x]" accesskey="x"><span>임의의 문서로</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%ED%8A%B9%EC%88%98%EB%AC%B8%EC%84%9C"><span>특수 문서 목록</span></a></li> </ul> </div> </div> <div id="p-사용자_모임" class="vector-menu mw-portlet mw-portlet-사용자_모임" > <div class="vector-menu-heading"> 사용자 모임 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-projectchat" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%82%AC%EB%9E%91%EB%B0%A9"><span>사랑방</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%82%AC%EC%9A%A9%EC%9E%90_%EB%AA%A8%EC%9E%84" title="위키백과 참여자를 위한 토론/대화 공간입니다."><span>사용자 모임</span></a></li><li id="n-request" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%9A%94%EC%B2%AD"><span>관리 요청</span></a></li> </ul> </div> </div> <div id="p-편집_안내" class="vector-menu mw-portlet mw-portlet-편집_안내" > <div class="vector-menu-heading"> 편집 안내 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-helpintro" class="mw-list-item"><a href="/wiki/%EB%8F%84%EC%9B%80%EB%A7%90:%EC%86%8C%EA%B0%9C"><span>소개</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%8F%84%EC%9B%80%EB%A7%90" title="도움말"><span>도움말</span></a></li><li id="n-policy" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%A0%95%EC%B1%85%EA%B3%BC_%EC%A7%80%EC%B9%A8"><span>정책과 지침</span></a></li><li id="n-qna" class="mw-list-item"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%A7%88%EB%AC%B8%EB%B0%A9"><span>질문방</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%8C%80%EB%AC%B8" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="위키백과" src="/static/images/mobile/copyright/wikipedia-wordmark-ko.svg" style="width: 7.5em; height: 1.75em;"> <img class="mw-logo-tagline" alt="" src="/static/images/mobile/copyright/wikipedia-tagline-ko.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/%ED%8A%B9%EC%88%98:%EA%B2%80%EC%83%89" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="위키백과 검색 [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>검색</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="위키백과 검색" aria-label="위키백과 검색" autocapitalize="sentences" title="위키백과 검색 [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="특수:검색"> </div> <button class="cdx-button cdx-search-input__end-button">검색</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="개인 도구"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="보이기"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="문서의 글꼴 크기, 폭, 색의 모습을 변경합니다" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="보이기" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">보이기</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=ko.wikipedia.org&uselang=ko" class=""><span>기부</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EA%B3%84%EC%A0%95%EB%A7%8C%EB%93%A4%EA%B8%B0&returnto=Join+%28SQL%29" title="계정을 만들고 로그인하는 것이 좋습니다. 하지만 필수는 아닙니다" class=""><span>계정 만들기</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EB%A1%9C%EA%B7%B8%EC%9D%B8&returnto=Join+%28SQL%29" title="위키백과에 로그인하면 여러가지 편리한 기능을 사용할 수 있습니다. [o]" accesskey="o" class=""><span>로그인</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="더 많은 옵션" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="개인 도구" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">개인 도구</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="사용자 메뉴" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=ko.wikipedia.org&uselang=ko"><span>기부</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EA%B3%84%EC%A0%95%EB%A7%8C%EB%93%A4%EA%B8%B0&returnto=Join+%28SQL%29" title="계정을 만들고 로그인하는 것이 좋습니다. 하지만 필수는 아닙니다"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>계정 만들기</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EB%A1%9C%EA%B7%B8%EC%9D%B8&returnto=Join+%28SQL%29" title="위키백과에 로그인하면 여러가지 편리한 기능을 사용할 수 있습니다. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>로그인</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> 로그아웃한 편집자를 위한 문서 <a href="/wiki/%EB%8F%84%EC%9B%80%EB%A7%90:%EC%86%8C%EA%B0%9C" aria-label="편집에 관해 더 알아보기"><span>더 알아보기</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%82%B4%EA%B8%B0%EC%97%AC" title="이 IP 주소의 편집 목록 [y]" accesskey="y"><span>기여</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%82%B4%EC%82%AC%EC%9A%A9%EC%9E%90%ED%86%A0%EB%A1%A0" title="현재 사용하는 IP 주소에 대한 토론 문서 [n]" accesskey="n"><span>토론</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="사이트"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="목차" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">목차</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">사이드바로 이동</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">숨기기</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">처음 위치</div> </a> </li> <li id="toc-예제_테이블" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#예제_테이블"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>예제 테이블</span> </div> </a> <ul id="toc-예제_테이블-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-교차_조인" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#교차_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>교차 조인</span> </div> </a> <ul id="toc-교차_조인-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-내부_조인" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#내부_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>내부 조인</span> </div> </a> <button aria-controls="toc-내부_조인-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>내부 조인 하위섹션 토글하기</span> </button> <ul id="toc-내부_조인-sublist" class="vector-toc-list"> <li id="toc-동일_조인" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#동일_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>동일 조인</span> </div> </a> <ul id="toc-동일_조인-sublist" class="vector-toc-list"> <li id="toc-자연_조인" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#자연_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1.1</span> <span>자연 조인</span> </div> </a> <ul id="toc-자연_조인-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-외부_조인" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#외부_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>외부 조인</span> </div> </a> <button aria-controls="toc-외부_조인-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>외부 조인 하위섹션 토글하기</span> </button> <ul id="toc-외부_조인-sublist" class="vector-toc-list"> <li id="toc-왼쪽_외부_조인" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#왼쪽_외부_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>왼쪽 외부 조인</span> </div> </a> <ul id="toc-왼쪽_외부_조인-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-오른쪽_외부_조인" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#오른쪽_외부_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>오른쪽 외부 조인</span> </div> </a> <ul id="toc-오른쪽_외부_조인-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-완전_외부_조인" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#완전_외부_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>완전 외부 조인</span> </div> </a> <ul id="toc-완전_외부_조인-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-자가_조인" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#자가_조인"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>자가 조인</span> </div> </a> <button aria-controls="toc-자가_조인-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>자가 조인 하위섹션 토글하기</span> </button> <ul id="toc-자가_조인-sublist" class="vector-toc-list"> <li id="toc-예제" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#예제"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>예제</span> </div> </a> <ul id="toc-예제-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-병합_열" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#병합_열"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>병합 열</span> </div> </a> <button aria-controls="toc-병합_열-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>병합 열 하위섹션 토글하기</span> </button> <ul id="toc-병합_열-sublist" class="vector-toc-list"> <li id="toc-MySQL" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MySQL"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>MySQL</span> </div> </a> <ul id="toc-MySQL-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Oracle_11g_R2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Oracle_11g_R2"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span> <span>Oracle 11g R2</span> </div> </a> <ul id="toc-Oracle_11g_R2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-CUBRID" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#CUBRID"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.3</span> <span>CUBRID</span> </div> </a> <ul id="toc-CUBRID-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PostgreSQL" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#PostgreSQL"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.4</span> <span>PostgreSQL</span> </div> </a> <ul id="toc-PostgreSQL-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Microsoft_T-SQL" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Microsoft_T-SQL"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.5</span> <span>Microsoft T-SQL</span> </div> </a> <ul id="toc-Microsoft_T-SQL-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-대체" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#대체"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>대체</span> </div> </a> <ul id="toc-대체-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-각주" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#각주"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>각주</span> </div> </a> <ul id="toc-각주-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-외부_링크" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#외부_링크"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>외부 링크</span> </div> </a> <ul id="toc-외부_링크-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="목차" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="목차" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="목차 토글" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">목차 토글</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Join (SQL)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="다른 언어로 문서를 방문합니다. 21개 언어로 읽을 수 있습니다" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-21" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">21개 언어</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Daxili_birl%C9%99%C5%9Fdirm%C9%99" title="Daxili birləşdirmə – 아제르바이잔어" lang="az" hreflang="az" data-title="Daxili birləşdirmə" data-language-autonym="Azərbaycanca" data-language-local-name="아제르바이잔어" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 카탈로니아어" lang="ca" hreflang="ca" data-title="Join (SQL)" data-language-autonym="Català" data-language-local-name="카탈로니아어" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/JOIN" title="JOIN – 체코어" lang="cs" hreflang="cs" data-title="JOIN" data-language-autonym="Čeština" data-language-local-name="체코어" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 덴마크어" lang="da" hreflang="da" data-title="Join (SQL)" data-language-autonym="Dansk" data-language-local-name="덴마크어" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 독일어" lang="de" hreflang="de" data-title="Join (SQL)" data-language-autonym="Deutsch" data-language-local-name="독일어" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 영어" lang="en" hreflang="en" data-title="Join (SQL)" data-language-autonym="English" data-language-local-name="영어" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Sentencia_JOIN_en_SQL" title="Sentencia JOIN en SQL – 스페인어" lang="es" hreflang="es" data-title="Sentencia JOIN en SQL" data-language-autonym="Español" data-language-local-name="스페인어" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Jointure_(informatique)" title="Jointure (informatique) – 프랑스어" lang="fr" hreflang="fr" data-title="Jointure (informatique)" data-language-autonym="Français" data-language-local-name="프랑스어" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 히브리어" lang="he" hreflang="he" data-title="Join (SQL)" data-language-autonym="עברית" data-language-local-name="히브리어" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 아르메니아어" lang="hy" hreflang="hy" data-title="Join (SQL)" data-language-autonym="Հայերեն" data-language-local-name="아르메니아어" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 이탈리아어" lang="it" hreflang="it" data-title="Join (SQL)" data-language-autonym="Italiano" data-language-local-name="이탈리아어" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 네덜란드어" lang="nl" hreflang="nl" data-title="Join (SQL)" data-language-autonym="Nederlands" data-language-local-name="네덜란드어" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 노르웨이어(보크말)" lang="nb" hreflang="nb" data-title="Join (SQL)" data-language-autonym="Norsk bokmål" data-language-local-name="노르웨이어(보크말)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 폴란드어" lang="pl" hreflang="pl" data-title="Join (SQL)" data-language-autonym="Polski" data-language-local-name="폴란드어" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 포르투갈어" lang="pt" hreflang="pt" data-title="Join (SQL)" data-language-autonym="Português" data-language-local-name="포르투갈어" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 러시아어" lang="ru" hreflang="ru" data-title="Join (SQL)" data-language-autonym="Русский" data-language-local-name="러시아어" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – Simple English" lang="en-simple" hreflang="en-simple" data-title="Join (SQL)" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 세르비아어" lang="sr" hreflang="sr" data-title="Join (SQL)" data-language-autonym="Српски / srpski" data-language-local-name="세르비아어" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 우크라이나어" lang="uk" hreflang="uk" data-title="Join (SQL)" data-language-autonym="Українська" data-language-local-name="우크라이나어" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Join_(SQL)" title="Join (SQL) – 베트남어" lang="vi" hreflang="vi" data-title="Join (SQL)" data-language-autonym="Tiếng Việt" data-language-local-name="베트남어" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E8%BF%9E%E6%8E%A5" title="连接 – 중국어" lang="zh" hreflang="zh" data-title="连接" data-language-autonym="中文" data-language-local-name="중국어" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2003535#sitelinks-wikipedia" title="언어 간 링크 편집" class="wbc-editpage">링크 편집</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="이름공간"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Join_(SQL)" title="본문 보기 [c]" accesskey="c"><span>문서</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/%ED%86%A0%EB%A1%A0:Join_(SQL)" rel="discussion" title="문서의 내용에 대한 토론 문서 [t]" accesskey="t"><span>토론</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="언어 변종 바꾸기" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">한국어</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="보기"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Join_(SQL)"><span>읽기</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Join_(SQL)&action=edit" title="이 문서의 원본 코드를 편집 [e]" accesskey="e"><span>편집</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Join_(SQL)&action=history" title="이 문서의 과거 편집 내역입니다. [h]" accesskey="h"><span>역사 보기</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="페이지 도구"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="도구" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">도구</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">도구</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">사이드바로 이동</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">숨기기</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="더 많은 옵션" > <div class="vector-menu-heading"> 동작 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Join_(SQL)"><span>읽기</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Join_(SQL)&action=edit" title="이 문서의 원본 코드를 편집 [e]" accesskey="e"><span>편집</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Join_(SQL)&action=history"><span>역사 보기</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> 일반 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EA%B0%80%EB%A6%AC%ED%82%A4%EB%8A%94%EB%AC%B8%EC%84%9C/Join_(SQL)" title="여기를 가리키는 모든 위키 문서의 목록 [j]" accesskey="j"><span>여기를 가리키는 문서</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%A7%81%ED%81%AC%EC%B5%9C%EA%B7%BC%EB%B0%94%EB%80%9C/Join_(SQL)" rel="nofollow" title="이 문서에서 링크한 문서의 최근 바뀜 [k]" accesskey="k"><span>가리키는 글의 최근 바뀜</span></a></li><li id="t-upload" class="mw-list-item"><a href="//ko.wikipedia.org/wiki/위키백과:파일_올리기" title="파일 올리기 [u]" accesskey="u"><span>파일 올리기</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Join_(SQL)&oldid=38884360" title="이 문서의 이 판에 대한 고유 링크"><span>고유 링크</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Join_(SQL)&action=info" title="이 문서에 대한 자세한 정보"><span>문서 정보</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EC%9D%B4%EB%AC%B8%EC%84%9C%EC%9D%B8%EC%9A%A9&page=Join_%28SQL%29&id=38884360&wpFormIdentifier=titleform" title="이 문서를 인용하는 방법에 대한 정보"><span>이 문서 인용하기</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:UrlShortener&url=https%3A%2F%2Fko.wikipedia.org%2Fwiki%2FJoin_%28SQL%29"><span>축약된 URL 얻기</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:QrCode&url=https%3A%2F%2Fko.wikipedia.org%2Fwiki%2FJoin_%28SQL%29"><span>QR 코드 다운로드</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> 인쇄/내보내기 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:%EC%B1%85&bookcmd=book_creator&referer=Join+%28SQL%29"><span>책 만들기</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=%ED%8A%B9%EC%88%98:DownloadAsPdf&page=Join_%28SQL%29&action=show-download-screen"><span>PDF로 다운로드</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Join_(SQL)&printable=yes" title="이 문서의 인쇄용 판 [p]" accesskey="p"><span>인쇄용 판</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> 다른 프로젝트 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:SQL_Joins" hreflang="en"><span>위키미디어 공용</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2003535" title="데이터 저장소에 연결된 항목을 가리키는 링크 [g]" accesskey="g"><span>위키데이터 항목</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="페이지 도구"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="보이기"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">보이기</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">사이드바로 이동</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">숨기기</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">위키백과, 우리 모두의 백과사전.</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(<a href="/w/index.php?title=JOIN_(SQL)&redirect=no" class="mw-redirect" title="JOIN (SQL)">JOIN (SQL)</a>에서 넘어옴)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="ko" dir="ltr"><p><span class="nowrap"></span> <b>join(조인)</b> 또는 <b>결합 구문</b>은 한 <a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="데이터베이스">데이터베이스</a> 내의 여러 <a href="/wiki/%ED%85%8C%EC%9D%B4%EB%B8%94_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="테이블 (데이터베이스)">테이블</a>의 레코드를 조합하여 하나의 열로 표현한 것이다. 따라서 조인은 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 셋을 만들어 낸다. JOIN은 2개의 테이블에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 된다. ANSI 표준 SQL은 네 가지 유형의 JOIN을 규정한다. </p> <ul><li>INNER JOIN</li> <li>OUTER JOIN</li> <li>LEFT JOIN</li> <li>RIGHT JOIN</li></ul> <p>마케팅 특별한 경우 테이블(기본 테이블, 뷰, 또는 조인된 테이블)은 자기 자신에게 JOIN할 수 있다. </p><p>프로그래머는 JOIN 절을 조인을 위한 레코드를 구분하는데 쓴다. 만약 값을 가진 구문이 참이라면, 결합된 레코드는 예상한 형식(레코드셋 또는 임의의 테이블)으로 생성된다. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="예제_테이블"><span id=".EC.98.88.EC.A0.9C_.ED.85.8C.EC.9D.B4.EB.B8.94"></span>예제 테이블</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=1" title="부분 편집: 예제 테이블"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>관계 데이터베이스는 종종 객체가 1 : 다의 관계를 가질 때, 정보의 중복을 제거하기 위해 <a href="/wiki/%EC%A0%95%EA%B7%9C%ED%99%94" class="mw-disambig" title="정규화">정규화</a>시킨다. 예를 들어, 부서(Department)라는 것은 다수의 다른 직원(Employee)들과 연관되어 있다. 효과적으로 2개의 테이블을 결합시키는 것은 2개의 테이블 모두에서 결합된 정보를 가진 또 다른 테이블을 만든다. 이것은 결합을 계산하는데 소요되는 시간적 측면에서 어느 정도 자원을 소요한다. 속도가 중요하다면, 탈정규화된 테이블을 단순히 유지시키는 것이 가능하지만, 중복된 데이터가 이후에 변경된다면 중복된 정보는 추가 비용을 발생시켜, 비용을 증가시키고, <a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AC%B4%EA%B2%B0%EC%84%B1" title="데이터 무결성">데이터 무결성</a>을 유지하는데 있어서 복잡성을 야기한다. </p><p>이 글에서 결합 형식에 대한 모든 부가적인 설명은 다음의 두 테이블을 예제로 이용한다. 이러한 테이블에서의 열은 다른 유형의 결합과 결합 서술문의 결과를 설명하는 역할을 할 것이다. 다음의 테이블에서 Department 테이블의 Department ID 컬럼(Department.Department ID로 표현할 수 있다.)이 <a href="/wiki/%EA%B8%B0%EB%B3%B8_%ED%82%A4" title="기본 키">기본 키</a>이며, Employee.Department ID가 <a href="/wiki/%EC%99%B8%EB%9E%98_%ED%82%A4" title="외래 키">외래 키</a>이다. </p> <table class="wikitable" style="text-align:center; float:left; margin-right:5px"> <caption>Employee 테이블 </caption> <tbody><tr> <th>LastName</th> <th>DepartmentID </th></tr> <tr> <td>Rafferty</td> <td>31 </td></tr> <tr> <td>Jones</td> <td>33 </td></tr> <tr> <td>Steinberg</td> <td>33 </td></tr> <tr> <td>Robinson</td> <td>34 </td></tr> <tr> <td>Smith</td> <td>34 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td></tr></tbody></table> <table class="wikitable" style="text-align:center; float:left; margin-left:5px"> <caption>Department 테이블 </caption> <tbody><tr> <th><u>DepartmentID</u></th> <th>DepartmentName </th></tr> <tr> <td><u>31</u></td> <td>영업부 </td></tr> <tr> <td><u>33</u></td> <td>기술부 </td></tr> <tr> <td><u>34</u></td> <td>사무부 </td></tr> <tr> <td><u>35</u></td> <td>마케팅 </td></tr></tbody></table> <p><br clear="all" /> </p><p><b>주의</b>: 위의 Employee 테이블에서, "John"이라는 직원은 아직 어떤 부서에도 할당되지 않았다. 또한 어떠한 직원도 "마케팅" 부서에 할당되지 않았음을 유의해라. </p><p>위에서 언급된 테이블을 생성하는 SQL이다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">department</span> <span class="p">(</span> <span class="w"> </span><span class="n">DepartmentID</span><span class="w"> </span><span class="nb">INT</span><span class="p">,</span> <span class="w"> </span><span class="n">DepartmentName</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="p">);</span> <span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">employee</span> <span class="p">(</span> <span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span> <span class="w"> </span><span class="n">DepartmentID</span><span class="w"> </span><span class="nb">INT</span> <span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">department</span><span class="p">(</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentName</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">31</span><span class="p">,</span><span class="w"> </span><span class="s1">'영업부'</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">department</span><span class="p">(</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentName</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">33</span><span class="p">,</span><span class="w"> </span><span class="s1">'기술부'</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">department</span><span class="p">(</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentName</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">34</span><span class="p">,</span><span class="w"> </span><span class="s1">'사무부'</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">department</span><span class="p">(</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentName</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span><span class="w"> </span><span class="s1">'마케팅'</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'Rafferty'</span><span class="p">,</span><span class="w"> </span><span class="mi">31</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'Jones'</span><span class="p">,</span><span class="w"> </span><span class="mi">33</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'Steinberg'</span><span class="p">,</span><span class="w"> </span><span class="mi">33</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'Robinson'</span><span class="p">,</span><span class="w"> </span><span class="mi">34</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'Smith'</span><span class="p">,</span><span class="w"> </span><span class="mi">34</span><span class="p">);</span> <span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">employee</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'John'</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">);</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="교차_조인"><span id=".EA.B5.90.EC.B0.A8_.EC.A1.B0.EC.9D.B8"></span>교차 조인</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=2" title="부분 편집: 교차 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><code>CROSS JOIN</code> 절은 조인되는 두 테이블에서 <a href="/wiki/%EA%B3%B1%EC%A7%91%ED%95%A9" title="곱집합">곱집합</a>을 반환한다. 즉, 두 번째 테이블로부터 각 행과 첫 번째 테이블에서 각 행이 한번씩 결합된 열을 만들 것이다. 예를 들어 m행을 가진 테이블과 n행을 가진 테이블이 교차 조인되면 m*n 개의 행을 생성한다.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>교차 조인의 명시적 예는 다음과 같다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">CROSS</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="p">;</span> </pre></div> <p>크로스 조인을 암묵적으로 사용한 예는 다음과 같다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span><span class="p">;</span> </pre></div> <p>이 두 쿼리는 동일한 결과를 반환한다. </p> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Employee.LastName</th> <th>Employee.DepartmentID</th> <th>Department.DepartmentName</th> <th>Department.DepartmentID </th></tr> <tr> <td>Rafferty</td> <td>31</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>마케팅</td> <td>35 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>마케팅</td> <td>35 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>마케팅</td> <td>35 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>마케팅</td> <td>35 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>마케팅</td> <td>35 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td>마케팅</td> <td>35 </td></tr></tbody></table> <p>크로스 조인은 결합된 테이블에서 레코드를 걸러내기 위해 어떠한 서술어도 적용하지 않는다. 프로그래머는 크로스 조인된 결과를 WHERE 구문을 사용하여 더 걸러낼 수 있다. </p><p>SQL:2011 표준에서, 크로스 조인은 F401, 확장 조인 테이블(Extended joined table)의 선택사항이다. </p> <div class="mw-heading mw-heading2"><h2 id="내부_조인"><span id=".EB.82.B4.EB.B6.80_.EC.A1.B0.EC.9D.B8"></span>내부 조인</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=3" title="부분 편집: 내부 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>내부 조인(inner join)은 여러 애플리케이션에서 사용되는 가장 흔한 결합 방식이며, 기본 조인 형식으로 간주된다. 내부 조인은 조인 구문에 기반한 2개의 테이블(A, B)의 컬럼 값을 결합함으로써 새로운 결과 테이블을 생성한다. 그 질의어는 조인 구문을 충족하는 모든 일치되는 결과 열을 찾기 위해 A 테이블의 각 열을 B 테이블의 각 열과 비교를 한다. 조인 구문이 충족되면, A, B 테이블에서 일치된 각 열의 컬럼 값은 결과 열로 결합된다. 조인으로 도출된 결과 값은 (테이블 A 내의 모든 레코드와 테이블 B에 있는 모든 레코드가 결합하여) 테이블에 존재하는 모든 레코드(또는 크로스 조인)의 최초의 곱집합의 결과값으로 정의될 수 있으며, 그런 이후 조인 구문을 충족시키는 모든 레코드 값을 반환한다. 실제 SQL 실행은 보통 곱집합의 연산이 매우 비효율적이기 때문에 실행 가능한 해쉬 조인 또는 소트-머지(sort-merge) 조인과 같은 다른 접근법을 사용한다. </p><p>SQL은 <b>‘명시적 조인 표현’</b>(explicit)과 <b>‘암시적 조인 표현’</b>(implicit) 2개의 다른 조인식 구문을 지정한다. </p><p><b>‘명시적 조인 표현’</b>에서는 테이블에 조인을 하라는 것을 지정하기 위해 JOIN 키워드를 사용하며, 그리고 나서 다음의 예제와 같이 ON 키워드를 조인에 대한 구문을 지정하는데 사용한다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p><b>‘암시적 조인 표현’</b>은 SELECT 구문의 FROM 절에서 그것들을 분리하는 컴마를 사용해서 단순히 조인을 위한 여러 테이블을 나열하기만 한다. 그리하여 그것은 교차 조인(cross join)을 지정하면, WHERE 절은 추가적인 필터 구문(명시적 구문에서 조인 구문을 비교하는 역할을 하는)을 적용할 것이다. </p><p>다음의 예제는 전자의 것과 동일한 예이지만, 이번에는 암시적 조인 구문을 사용했다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>위의 예에서 제시한 질의어는 두 테이블의 DepartmentID 컬럼을 이용해서 Employee 와 Department 테이블을 조인할 것이다. 이 두 테이블에서 DepartmentID가 일치하는 곳(즉, 조인 구문이 충족되는 곳)에서 쿼리는 LastName, DepartmentID 와 DepartmentName 컬럼을 결과 열로 결합할 것이다. DepartmentID 가 일치하지 않는다면, 어떠한 결과 값도 생성되지 않을 것이다. </p><p>그리하여 위 예제의 2개의 질의 중 하나의 수행 결과는 다음과 같을 것이다. </p> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Employee.LastName</th> <th>Employee.DepartmentID</th> <th>Department.DepartmentName</th> <th>Department.DepartmentID </th></tr> <tr> <td>Robinson</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>영업부</td> <td>31 </td></tr> </tbody></table> <p><b>주의</b>: 프로그래머는 조인 조건이 명시적으로 IS NULL 또는 IS NOT NULL과 같은 추가 구문을 사용하지 않는다면 NULL은 어떠한 값도 일치하지 않으므로(심지어 NULL 자체도) NULL 값이 포함될 수 있는 테이블을 조인하는데 있어서 특별한 주의를 기울여야 한다. </p><p>John이라는 직원과 마케팅이라는 부서가 쿼리 수행 결과에서 나타나지 않음을 유의하자. 이것들 중 어느 것도 다른 테이블에서 일치되는 레코드를 가지고 있지 않다 : John은 부서와 연관이 없으며, 어떤 직원도 department ID 35 ("마케팅")에 배속되어 있지 않다. 희망하는 결과값에 따라, 이러한 행위는 약간 버그가 있을 수도 있으며, 그리고 그것은 외부 조인에서는 회피될 수 있는 것이다. </p><p>내부 조인을 더 세부적으로 분류하여 <b>동일 조인</b>(Equi-Join), <b>자연 조인</b>(natural join), 또는 <b>교차 조인</b>(cross-join)으로도 나눌 수 있다. </p> <div class="mw-heading mw-heading3"><h3 id="동일_조인"><span id=".EB.8F.99.EC.9D.BC_.EC.A1.B0.EC.9D.B8"></span>동일 조인</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=4" title="부분 편집: 동일 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>동일 조인</b>(Equi-Join)은 특별한 유형의 <i>비교자 기반의 조인</i>이며, 이것은 조인 구문에서 동등비교만을 사용한다. 다른 비교 연산자(<code><</code>와 같은)를 사용하는 것은 동일 조인으로서의 조인의 자격을 박탈하는 것이다. 위에서 보여준 쿼리는 이미 동일 조인의 예시가 제시되었다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>우리는 동일 조인을 아래와 같이 쓸 수 있다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>만약 동일 조인 내에 있는 컬럼들이 동일한 이름을 가지고 있다면, <a href="/w/index.php?title=SQL-92&action=edit&redlink=1" class="new" title="SQL-92 (없는 문서)">SQL-92</a>는 <code>USING</code>을 추가함으로써 동일 조인을 표현하기 위한 속기적 개념을 선택적으로 제공한다 :<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="p">(</span><span class="n">DepartmentID</span><span class="p">);</span> </pre></div> <p><code>USING</code> 구문은 단순한 <a href="/w/index.php?title=%EC%84%A4%ED%83%95%EA%B5%AC%EB%AC%B8&action=edit&redlink=1" class="new" title="설탕구문 (없는 문서)">설탕구문</a>이지만, 결과 값이 명시적 구문에 의한 결과 값과는 다르다. 특히 <code>USING</code> 목록 속에 언급된 어떤 컬럼들은 조인에서 각 테이블에 한번 등장하기 보다는, 권한이 없는 이름으로 단 한번만 등장할 것이다. 위의 사례에서, 단인 <code>DepartmentID</code> 컬럼이 해당하고, <code>employee.DepartmentID</code> 또는 <code>department.DepartmentID</code>은 해당되지 않는다. </p><p><code>USING</code> 구문은 MS SQL Server와 Sybase에서는 지원하지 않는다. </p> <div class="mw-heading mw-heading4"><h4 id="자연_조인"><span id=".EC.9E.90.EC.97.B0_.EC.A1.B0.EC.9D.B8"></span>자연 조인</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=5" title="부분 편집: 자연 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b><a href="/w/index.php?title=%EC%9E%90%EC%97%B0_%EC%A1%B0%EC%9D%B8&action=edit&redlink=1" class="new" title="자연 조인 (없는 문서)">자연 조인</a></b>(natural join)은 동일 조인의 한 유형으로 조인 구문이 조인된 테이블에서 동일한 컬럼명을 가진 2개의 테이블에서 모든 컬럼들을 비교함으로써, 암시적으로 일어나는 구문이다. 결과적으로 나온 조인된 테이블은 동일한 이름을 가진 컬럼의 각 쌍에 대한 단 하나의 컬럼만 포함하고 있다. </p><p>대부분의 전문가들은 NATURAL JOIN이 위험한 것이며, 그러므로 이것의 사용을 강력하게 비권장하고 있다.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> 그러한 위험은 다른 테이블에 다른 컬럼으로 동일한 이름을 가진 새로운 컬럼을 무심코 추가하는데서 오는 것이다. </p><p>현존하는 자연 조인은 자연스럽게 (다른 컬럼에서 온) 이전보다 다른 기준을 이용해서 비교를 위해 비교를 하거나 일치하는 것을 찾아서 새로운 컬럼을 이용할 것이다. 그리하여 테이블 내에 있는 데이터가 변경되지 않고, 증가만 해도 현존하는 질의어는 다른 결과물을 생성할 것이다. </p><p>위의 내부 조인을 위한 예제 질의는 다음과 같은 방법으로 자연 조인으로서 표현될 수 있을 것이다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">NATURAL</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="p">;</span> </pre></div> <p>명시적인 <code>USING</code> 구문을 사용해서, 단지 하나의 DepartmentID 컬럼이 조인된 테이블 내에 권한자 없이 생성된다 : </p> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>DepartmentID</th> <th>Employee.LastName</th> <th>Department.DepartmentName </th></tr> <tr> <td>34</td> <td>Smith</td> <td>사무부 </td></tr> <tr> <td>33</td> <td>Jones</td> <td>기술부 </td></tr> <tr> <td>34</td> <td>Robinson</td> <td>사무부 </td></tr> <tr> <td>33</td> <td>Steinberg</td> <td>기술부 </td></tr> <tr> <td>31</td> <td>Rafferty</td> <td>영업부 </td></tr></tbody></table> <p>PostgreSQL, MySQL 그리고 오라클 데이터베이스는 자연 조인을 지원하지만, Microsoft T-SQL 또는 IBM DB2는 지원되지 않는다. 조인에 사용된 컬럼들은 암시적이어서, 조인 코드가 </p><p>기대 컬럼이 어떤 것인지를 보여주지 않으며, 컬럼의 변화는 결과를 바꿀 것이다. 동일한 필드명을 가진 2개의 테이블에서 실행된 내부 조인 은 동일한 결과물을 가진다.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> <a href="/wiki/SQL:2011" title="SQL:2011">SQL:2011</a> 표준에서, 자연 조인은 F401 (확장 조인된 테이블) 패키지의 선택적 부분이다. </p> <div class="mw-heading mw-heading2"><h2 id="외부_조인"><span id=".EC.99.B8.EB.B6.80_.EC.A1.B0.EC.9D.B8"></span>외부 조인</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=6" title="부분 편집: 외부 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="왼쪽_외부_조인"><span id=".EC.99.BC.EC.AA.BD_.EC.99.B8.EB.B6.80_.EC.A1.B0.EC.9D.B8"></span>왼쪽 외부 조인</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=7" title="부분 편집: 왼쪽 외부 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>왼쪽 외부 조인의 예, 부가적인 결과 열 (내부 조인과 비교하여)은 이탤릭체: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">LEFT</span><span class="w"> </span><span class="k">OUTER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Employee.LastName</th> <th>Employee.DepartmentID</th> <th>Department.DepartmentName</th> <th>Department.DepartmentID </th></tr> <tr> <td>Jones</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>영업부</td> <td>31 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Smith</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td><i>John</i></td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>기술부</td> <td>33 </td></tr></tbody></table> <p>오라클은 대체 구문을 제공한다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">(</span><span class="o">+</span><span class="p">)</span> </pre></div> <p>사이베이스가 제공하는 대체 구문은 다음과 같다: </p> <div class="mw-highlight mw-highlight-lang-tsql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="오른쪽_외부_조인"><span id=".EC.98.A4.EB.A5.B8.EC.AA.BD_.EC.99.B8.EB.B6.80_.EC.A1.B0.EC.9D.B8"></span>오른쪽 외부 조인</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=8" title="부분 편집: 오른쪽 외부 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>아래는 오른쪽 외부 조인의 예이며, 부가적인 결과 열은 이탤릭체로 되어있다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">RIGHT</span><span class="w"> </span><span class="k">OUTER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Employee.LastName</th> <th>Employee.DepartmentID</th> <th>Department.DepartmentName</th> <th>Department.DepartmentID </th></tr> <tr> <td>Smith</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>영업부</td> <td>31 </td></tr> <tr> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><i>마케팅</i></td> <td><i>35</i> </td></tr></tbody></table> <p>오라클이 제공하는 대체 구문은 다음과 같다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="p">,</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> </pre></div> <p>오른쪽과 왼쪽 외부 조인은 기능적으로 동일하다. 양자 모두 다른 것들이 하지 않는 어떠한 기능도 제공하지 않는다. 그래서 오른쪽과 왼쪽 외부 조인은 테이블 순서가 변경되기만 하면, 서로 대체할 수 있다. </p> <div class="mw-heading mw-heading3"><h3 id="완전_외부_조인"><span id=".EC.99.84.EC.A0.84_.EC.99.B8.EB.B6.80_.EC.A1.B0.EC.9D.B8"></span>완전 외부 조인</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=9" title="부분 편집: 완전 외부 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>완전 외부 조인의 예는 다음과 같다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="k">FULL</span><span class="w"> </span><span class="k">OUTER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Employee.LastName</th> <th>Employee.DepartmentID</th> <th>Department.DepartmentName</th> <th>Department.DepartmentID </th></tr> <tr> <td>Smith</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td>Jones</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Robinson</td> <td>34</td> <td>사무부</td> <td>34 </td></tr> <tr> <td><i>John</i></td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td></tr> <tr> <td>Steinberg</td> <td>33</td> <td>기술부</td> <td>33 </td></tr> <tr> <td>Rafferty</td> <td>31</td> <td>영업부</td> <td>31 </td></tr> <tr> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td><i>마케팅</i></td> <td><i>35</i> </td></tr></tbody></table> <p>일부 데이터베이스 시스템은 완전 외부 조인 기능을 직접적으로 지원하지 않지만, 좌우 테이블에서 각각 단일 테이블 열의 내부 조인과 UNION ALL select의 사용을 통해 비슷하게 구현할 수 있다. 동일한 예제를 다음과 같이 표현할 수 있다: </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">,</span> <span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentName</span><span class="p">,</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> <span class="k">UNION</span><span class="w"> </span><span class="k">ALL</span> <span class="k">SELECT</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">,</span> <span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">20</span><span class="p">)),</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">integer</span><span class="p">)</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">WHERE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span> <span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">)</span> <span class="k">UNION</span><span class="w"> </span><span class="k">ALL</span> <span class="k">SELECT</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">20</span><span class="p">)),</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">integer</span><span class="p">),</span> <span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentName</span><span class="p">,</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> <span class="k">FROM</span><span class="w"> </span><span class="n">department</span> <span class="k">WHERE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span> <span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">)</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="자가_조인"><span id=".EC.9E.90.EA.B0.80_.EC.A1.B0.EC.9D.B8"></span>자가 조인</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=10" title="부분 편집: 자가 조인"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>자가 조인</b>(self-join)은 한 테이블에서 자기 자신에 조인을 시키는 것이다.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="예제"><span id=".EC.98.88.EC.A0.9C"></span>예제</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=11" title="부분 편집: 예제"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>같은 나라에서 2명의 직원의 모든 쌍을 찾기 위한 질의어가 필요하다. 만약 2개의 별개의 직원 테이블이 있고, 동일한 국적을 가진 두 번째 테이블에 있는 직원이, 첫 번째 테이블에서 직원을 찾는 쿼리가 있다면, 보통의 조인 동작이 테이블에 답하기 위해 사용될 수 있을 것이다. 그러나 모든 직원 정보는 하나의 거대한 테이블에 포함되어 있다.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p><p>다음과 같이 수정된 <code>Employee</code> 테이블이 있다고 하자: </p> <table class="wikitable" style="text-align:center; float:left; margin-right:5px"> <caption>Employee Table </caption> <tbody><tr> <th>EmployeeID</th> <th>LastName</th> <th>Country</th> <th>DepartmentID </th></tr> <tr> <td>123</td> <td>Rafferty</td> <td>호주</td> <td>31 </td></tr> <tr> <td>124</td> <td>Jones</td> <td>호주</td> <td>33 </td></tr> <tr> <td>145</td> <td>Steinberg</td> <td>호주</td> <td>33 </td></tr> <tr> <td>201</td> <td>Robinson</td> <td>미국</td> <td>34 </td></tr> <tr> <td>305</td> <td>Smith</td> <td>독일</td> <td>34 </td></tr> <tr> <td>306</td> <td>John</td> <td>독일</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td></tr></tbody></table> <p><br clear="all" /> </p><p>상기 예의 해답 질의어는 다음과 같을 것이다 : </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">EmployeeID</span><span class="p">,</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">S</span><span class="p">.</span><span class="n">EmployeeID</span><span class="p">,</span><span class="w"> </span><span class="n">S</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">Country</span> <span class="k">FROM</span><span class="w"> </span><span class="n">Employee</span><span class="w"> </span><span class="n">F</span><span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">Employee</span><span class="w"> </span><span class="n">S</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">Country</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">S</span><span class="p">.</span><span class="n">Country</span> <span class="k">WHERE</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">EmployeeID</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">S</span><span class="p">.</span><span class="n">EmployeeID</span> <span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">F</span><span class="p">.</span><span class="n">EmployeeID</span><span class="p">,</span><span class="w"> </span><span class="n">S</span><span class="p">.</span><span class="n">EmployeeID</span><span class="p">;</span> </pre></div> <p>이것은 아래와 같이 생성된 테이블로 이어질 것이다. </p> <table class="wikitable" style="text-align:center; float:left; margin-right:5px"> <caption>Employee Table after Self-join by Country </caption> <tbody><tr> <th>EmployeeID</th> <th>LastName</th> <th>EmployeeID</th> <th>LastName</th> <th>Country </th></tr> <tr> <td>123</td> <td>Rafferty</td> <td>124</td> <td>Jones</td> <td>호주 </td></tr> <tr> <td>123</td> <td>Rafferty</td> <td>145</td> <td>Steinberg</td> <td>호주 </td></tr> <tr> <td>124</td> <td>Jones</td> <td>145</td> <td>Steinberg</td> <td>호주 </td></tr> <tr> <td>305</td> <td>Smith</td> <td>306</td> <td>John</td> <td>독일 </td></tr></tbody></table> <p><br clear="all" /> 이러한 예제를 위해: </p> <ul><li><code>F</code> 와 <code>S</code>는 employee 테이블의 첫 번째, 두 번째를 위한 <a href="/w/index.php?title=Alias_(SQL)&action=edit&redlink=1" class="new" title="Alias (SQL) (없는 문서)">앨리어스</a>이다.</li> <li>조건 <code>F.Country = S.Country</code>는 다른 국적의 직원들 사이의 쌍을 배제한다. 예제 질문은 단지 동일 국적의 직원 쌍만 원한다.</li> <li>조건 <code>F.EmployeeID < S.EmployeeID</code> excludes pairings where the <code>EmployeeID</code> of the first employee is greater than or equal to the <code>EmployeeID</code> of the second employee. In other words, the effect of this condition is to exclude duplicate pairings and self-pairings. 그것이 없다면, 다음과 같이 유용성이 떨어지는 테이블이 생성될 것이다 (아래의 예제 테이블은 단지 결과 중 "독일" 부분만 보여준다):</li></ul> <table class="wikitable" style="text-align:center; float:left; margin-right:5px"> <tbody><tr> <th>EmployeeID</th> <th>LastName</th> <th>EmployeeID</th> <th>LastName</th> <th>Country </th></tr> <tr> <td>305</td> <td>Smith</td> <td>305</td> <td>Smith</td> <td>독일 </td></tr> <tr> <td>305</td> <td>Smith</td> <td>306</td> <td>John</td> <td>독일 </td></tr> <tr> <td>306</td> <td>John</td> <td>305</td> <td>Smith</td> <td>독일 </td></tr> <tr> <td>306</td> <td>John</td> <td>306</td> <td>John</td> <td>독일 </td></tr></tbody></table> <p><br clear="all" /> 원래의 질문을 충족시키기 위해 중간 쌍의 단지 하나만 필요로 하며, 최상위 그리고 최하위는 이 예제에서 전혀 관심의 대상이 아니다. </p> <div class="mw-heading mw-heading2"><h2 id="병합_열"><span id=".EB.B3.91.ED.95.A9_.EC.97.B4"></span>병합 열</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=12" title="부분 편집: 병합 열"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>여러 줄을 하나의 열로 병합하기 위해서는 그룹 컨캣 표기법(group_concat notation)을 사용한다. </p><p><a href="/wiki/MySQL" title="MySQL">MySQL</a>과 <a href="/wiki/CUBRID" title="CUBRID">CUBRID</a>는 그러한 목표를 얻기 위해 <code>group_concat</code> 키워드를 사용하며, <a href="/wiki/PostgreSQL" title="PostgreSQL">PostgreSQL</a> 9.0은 <code>string_agg</code> 함수를 사용한다. 9.0 이전의 판은 다음과 같이 해야 한다. </p> <pre>array_to_string(array_agg(value),', ') </pre> <p>또는 집합 함수를 생성해야 한다. </p> <table class="wikitable" style="text-align:center; float:left; margin-right:5px"> <caption>Employee 테이블 사용: </caption> <tbody><tr> <th>LastName</th> <th>DepartmentID </th></tr> <tr> <td>Rafferty</td> <td>31 </td></tr> <tr> <td>Jones</td> <td>33 </td></tr> <tr> <td>Steinberg</td> <td>33 </td></tr> <tr> <td>Robinson</td> <td>34 </td></tr> <tr> <td>Smith</td> <td>34 </td></tr> <tr> <td>John</td> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td></tr></tbody></table> <table class="wikitable" style="text-align:center; float:left; margin-left:5px"> <caption>다음의 결과 테이블을 얻기 위해 </caption> <tbody><tr> <th>DepartmentID</th> <th>LastNames </th></tr> <tr> <td><span style="color: white; background-color: gray; padding: 2px 4px; font-size: smaller; font-family: monospace">NULL</span> </td> <td>John </td></tr> <tr> <td>31</td> <td>Rafferty </td></tr> <tr> <td>33</td> <td>Jones, Steinberg </td></tr> <tr> <td>34</td> <td>Robinson, Smith </td></tr></tbody></table> <p><br clear="all" /> </p> <div class="mw-heading mw-heading3"><h3 id="MySQL">MySQL</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=13" title="부분 편집: MySQL"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-mysql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="nf">group_concat</span><span class="p">(</span><span class="n">LastName</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Oracle_11g_R2">Oracle 11g R2</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=14" title="부분 편집: Oracle 11g R2"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span> <span class="w"> </span><span class="n">listagg</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="s1">', '</span><span class="p">)</span><span class="w"> </span><span class="n">WITHIN</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="p">(</span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">LastName</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="CUBRID">CUBRID</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=15" title="부분 편집: CUBRID"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span> <span class="w"> </span><span class="n">GROUP_CONCAT</span><span class="p">(</span><span class="n">LastName</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="n">SEPARATOR</span><span class="w"> </span><span class="s1">','</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="PostgreSQL">PostgreSQL</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=16" title="부분 편집: PostgreSQL"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>우선 질의를 하기 전 함수 _group_concat 과 집합 group_concat이 생성되어야 한다. </p> <div class="mw-highlight mw-highlight-lang-postgresql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">_group_concat</span><span class="p">(</span><span class="nb">text</span><span class="p">,</span><span class="w"> </span><span class="nb">text</span><span class="p">)</span> <span class="k">RETURNS</span><span class="w"> </span><span class="nb">text</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="s">$$</span> <span class="s">SELECT CASE</span> <span class="s">WHEN $2 IS NULL THEN $1</span> <span class="s">WHEN $1 IS NULL THEN $2</span> <span class="s">ELSE $1 operator(pg_catalog.||) ', ' operator(pg_catalog.||) $2</span> <span class="s">END</span> <span class="s">$$</span><span class="w"> </span><span class="k">IMMUTABLE</span><span class="w"> </span><span class="k">LANGUAGE</span><span class="w"> </span><span class="k">SQL</span><span class="p">;</span> <span class="n">error</span><span class="o">//</span><span class="w"> </span><span class="k">Join</span><span class="w"> </span><span class="k">SQL</span> <span class="k">CREATE</span><span class="w"> </span><span class="k">AGGREGATE</span><span class="w"> </span><span class="n">group_concat</span><span class="w"> </span><span class="p">(</span> <span class="n">BASETYPE</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span> <span class="n">SFUNC</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">_group_concat</span><span class="p">,</span> <span class="n">STYPE</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">text</span> <span class="p">);</span> <span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">group_concat</span><span class="p">(</span><span class="n">LastName</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>9.0 버전에서는: </p> <div class="mw-highlight mw-highlight-lang-postgresql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">string_agg</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="s1">', '</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Microsoft_T-SQL">Microsoft T-SQL</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=17" title="부분 편집: Microsoft T-SQL"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Microsoft SQL Server 2005 이전 버전에서, group_concat 함수는 그러한 쿼리를 날리기 전에 사용자 정의 집합 함수로 만들어져야 한다. 아래에 C#으로 만든 예제가 있다. </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span> <span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span> <span class="k">using</span><span class="w"> </span><span class="nn">System.Data.SqlTypes</span><span class="p">;</span> <span class="k">using</span><span class="w"> </span><span class="nn">System.IO</span><span class="p">;</span> <span class="k">using</span><span class="w"> </span><span class="nn">Microsoft.SqlServer.Server</span><span class="p">;</span> <span class="na">[Serializable]</span> <span class="na">[SqlUserDefinedAggregate(Format.UserDefined, MaxByteSize=8000)]</span> <span class="k">public</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">group_concat</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">IBinarySerialize</span><span class="p">{</span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">List</span><span class="w"> </span><span class="n">values</span><span class="p">;</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Init</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Accumulate</span><span class="p">(</span><span class="n">SqlString</span><span class="w"> </span><span class="k">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="k">value</span><span class="p">.</span><span class="n">Value</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Merge</span><span class="p">(</span><span class="n">strconcat</span><span class="w"> </span><span class="k">value</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">AddRange</span><span class="p">(</span><span class="k">value</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">ToArray</span><span class="p">());</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">SqlString</span><span class="w"> </span><span class="nf">Terminate</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="nf">SqlString</span><span class="p">(</span><span class="kt">string</span><span class="p">.</span><span class="n">Join</span><span class="p">(</span><span class="s">", "</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">ToArray</span><span class="p">()));</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Read</span><span class="p">(</span><span class="n">BinaryReader</span><span class="w"> </span><span class="n">r</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">itemCount</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">ReadInt32</span><span class="p">();</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="p">(</span><span class="n">itemCount</span><span class="p">);</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">itemCount</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">r</span><span class="p">.</span><span class="n">ReadString</span><span class="p">());</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Write</span><span class="p">(</span><span class="n">BinaryWriter</span><span class="w"> </span><span class="n">w</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">w</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">.</span><span class="n">Count</span><span class="p">);</span> <span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="n">values</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">w</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="n">s</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div> <p>그러면 다음과 같은 쿼리를 이용할 수 있다: </p> <div class="mw-highlight mw-highlight-lang-tsql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">dbo</span><span class="p">.</span><span class="n">group_concat</span><span class="p">(</span><span class="n">LastName</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>2005 버전에서는, 이 작업을 FOR XML PATH를 사용하면 된다: </p> <div class="mw-highlight mw-highlight-lang-tsql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span><span class="p">,</span> <span class="w"> </span><span class="nf">STUFF</span><span class="p">(</span> <span class="w"> </span><span class="p">(</span><span class="k">SELECT</span> <span class="w"> </span><span class="s1">','</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">LastName</span> <span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="p">(</span> <span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">LastName</span> <span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="n">e2</span> <span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">e1</span><span class="p">.</span><span class="n">DepartmentID</span><span class="o">=</span><span class="n">e2</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="ow">OR</span> <span class="w"> </span><span class="p">(</span><span class="n">e1</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="ow">AND</span><span class="w"> </span><span class="n">e2</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="p">)</span> <span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">t1</span> <span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">LastName</span> <span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="nc">XML</span><span class="w"> </span><span class="k">PATH</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span> <span class="w"> </span><span class="p">)</span> <span class="w"> </span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">''</span> <span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">LastNames</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span><span class="w"> </span><span class="n">e1</span> <span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">DepartmentID</span> </pre></div><p> 2017 이후 버전에서는 STRING_AGG() 함수를 사용하면 된다.</p><div class="mw-highlight mw-highlight-lang-sql mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="k">SELECT</span><span class="w"> </span><span class="n">DepartmentID</span> <span class="linenos" data-line="2"></span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">STRING_AGG</span><span class="p">(</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="s1">','</span><span class="p">)</span><span class="w"> </span><span class="n">WITHIN</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="p">(</span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="k">ASC</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">LastNames</span> <span class="linenos" data-line="3"></span><span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="linenos" data-line="4"></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span> <span class="linenos" data-line="5"></span><span class="w"> </span><span class="n">DepartmentID</span> <span class="linenos" data-line="6"></span><span class="p">;</span> </pre></div><p><br clear="all" /> </p><div class="mw-heading mw-heading2"><h2 id="대체"><span id=".EB.8C.80.EC.B2.B4"></span>대체</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=18" title="부분 편집: 대체"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>외부 조인의 결과는 또한 INNER JOIN과 조인 조건을 수행하지 않은 주요 테이블 내의 열들의 SELECT 사이에 UNION ALL을 사용함으로써 동일한 결과를 얻을 수 있다. 예제는 다음과 같다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentName</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">LEFT</span><span class="w"> </span><span class="k">OUTER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">;</span> </pre></div> <p>이것은 다음과 같이 쓸 수도 있다. </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentName</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">department</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span> <span class="k">UNION</span><span class="w"> </span><span class="k">ALL</span> <span class="k">SELECT</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">LastName</span><span class="p">,</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">,</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">20</span><span class="p">))</span> <span class="k">FROM</span><span class="w"> </span><span class="n">employee</span> <span class="k">WHERE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span> <span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">department</span> <span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">employee</span><span class="p">.</span><span class="n">DepartmentID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">department</span><span class="p">.</span><span class="n">DepartmentID</span><span class="p">)</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="각주"><span id=".EA.B0.81.EC.A3.BC"></span>각주</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=19" title="부분 편집: 각주"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r35556958">.mw-parser-output .reflist{font-size:90%;margin-bottom:0.5em;list-style-type:decimal}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.sqlguides.com/sql_cross_join.php">SQL CROSS JOIN</a></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.java2s.com/Tutorial/Oracle/0140__Table-Joins/SimplifyingJoinswiththeUSINGKeyword.htm">Simplifying Joins with the USING Keyword</a></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:13430766143199">Ask Tom "Oracle support of ANSI joins."</a> <a rel="nofollow" class="external text" href="http://awads.net/wp/2006/03/20/back-to-basics-inner-joins/#comment-2837">Back to basics: inner joins » Eddie Awad's Blog</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101119182541/http://awads.net/wp/2006/03/20/back-to-basics-inner-joins/">보관됨</a> 2010-11-19 - <a href="/wiki/%EC%9B%A8%EC%9D%B4%EB%B0%B1_%EB%A8%B8%EC%8B%A0" title="웨이백 머신">웨이백 머신</a></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130404123753/http://database.blogs.webucator.com/2010/03/31/why-sql-server-doesnt-support-natural-join-syntax/">“Why SQL Server Doesn’t Support Natural Join Syntax”</a>. 2013년 4월 4일에 <a rel="nofollow" class="external text" href="http://database.blogs.webucator.com/2010/03/31/why-sql-server-doesnt-support-natural-join-syntax/">원본 문서</a>에서 보존된 문서<span class="reference-accessdate">. 2013년 4월 19일에 확인함</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Why+SQL+Server+Doesn%E2%80%99t+Support+Natural+Join+Syntax&rft_id=http%3A%2F%2Fdatabase.blogs.webucator.com%2F2010%2F03%2F31%2Fwhy-sql-server-doesnt-support-natural-join-syntax%2F&rfr_id=info%3Asid%2Fko.wikipedia.org%3AJoin+%28SQL%29" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><a href="#CITEREFShah2005">Shah 2005</a>, 165쪽<span class="error harv-error" style="display: none; font-size:100%"> 괄호 없는 하버드 인용 error: 대상 없음: CITEREFShah2005 (<a href="https://en.wikipedia.org/wiki/Category:Harv_and_Sfn_template_errors" class="extiw" title="en:Category:Harv and Sfn template errors">help</a>)</span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Adapted from <a href="#CITEREFPratt2005">Pratt 2005</a>, 115–6쪽<span class="error harv-error" style="display: none; font-size:100%"> 괄호 없는 하버드 인용 error: 대상 없음: CITEREFPratt2005 (<a href="https://en.wikipedia.org/wiki/Category:Harv_and_Sfn_template_errors" class="extiw" title="en:Category:Harv and Sfn template errors">help</a>)</span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="외부_링크"><span id=".EC.99.B8.EB.B6.80_.EB.A7.81.ED.81.AC"></span>외부 링크</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Join_(SQL)&action=edit&section=20" title="부분 편집: 외부 링크"><span>편집</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>특정 제품에 따른 <ul><li><a rel="nofollow" class="external text" href="http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sqlug/html/sqlug/sqlug138.htm">Sybase ASE 15 Joins</a></li> <li><a rel="nofollow" class="external text" href="http://dev.mysql.com/doc/refman/5.5/en/join.html">MySQL 5.5 Joins</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090928025753/http://www.postgresqlguide.com/retrieving-data-from-multiple-tables-by-using-sql-join.aspx">PostgreSQL Join with Query Explain</a></li> <li><a rel="nofollow" class="external text" href="http://www.postgresql.org/docs/8.3/static/tutorial-join.html">PostgreSQL 8.3 Joins</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081010173643/http://msdn2.microsoft.com/en-us/library/ms191517.aspx">Joins in Microsoft SQL Server</a></li> <li><a rel="nofollow" class="external text" href="http://maxdb.sap.com/currentdoc/45/f31c38e95511d5995d00508b5d5211/content.htm">Joins in MaxDB 7.6</a></li> <li><a rel="nofollow" class="external text" href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm">Joins in Oracle 11g</a></li></ul></li> <li>일반 <ul><li><a rel="nofollow" class="external text" href="http://www.codinghorror.com/blog/archives/000976.html">A Visual Explanation of SQL Joins</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090918033712/http://www.codinghorror.com/blog/archives/000976.html">보관됨</a> 2009-09-18 - <a href="/wiki/%EC%9B%A8%EC%9D%B4%EB%B0%B1_%EB%A8%B8%EC%8B%A0" title="웨이백 머신">웨이백 머신</a></li> <li><a rel="nofollow" class="external text" href="http://www.halfgaar.net/sql-joins-are-easy">Another visual explanation of SQL joins, along with some set theory</a></li> <li><a rel="nofollow" class="external text" href="http://www.gplivna.eu/papers/sql_join_types.htm">SQL join types classified with examples</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090903065618/http://www.gplivna.eu/papers/sql_join_types.htm">보관됨</a> 2009-09-03 - <a href="/wiki/%EC%9B%A8%EC%9D%B4%EB%B0%B1_%EB%A8%B8%EC%8B%A0" title="웨이백 머신">웨이백 머신</a></li> <li><a rel="nofollow" class="external text" href="https://weblogs.sqlteam.com/jeffs/archive/2007/04/19/Full-Outer-Joins.aspx">An alternative strategy to using FULL OUTER JOIN</a></li> <li><a rel="nofollow" class="external text" href="http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/">Latest article explaining Join in simple diagrams and relevant code</a></li> <li><a rel="nofollow" class="external text" href="http://www.flickr.com/photos/mattimattila/8190148857/">Visual representation of 7 possible SQL joins between two sets</a></li></ul></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r36480591">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" | ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" - ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:", ";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" / ";font-weight:normal}</style><style data-mw-deduplicate="TemplateStyles:r38501015">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="SQL" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r36480591" /><style data-mw-deduplicate="TemplateStyles:r38585741">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-보기"><a href="/wiki/%ED%8B%80:SQL" title="틀:SQL"><abbr title="이 틀을 보기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-토론"><a href="/w/index.php?title=%ED%8B%80%ED%86%A0%EB%A1%A0:SQL&action=edit&redlink=1" class="new" title="틀토론:SQL (없는 문서)"><abbr title="이 틀에 관해 토론하기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-편집"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%AC%B8%EC%84%9C%ED%8E%B8%EC%A7%91/%ED%8B%80:SQL" title="특수:문서편집/틀:SQL"><abbr title="이 틀을 편집하기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="SQL" style="font-size:114%;margin:0 4em"><a href="/wiki/SQL" title="SQL">SQL</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">버전</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/w/index.php?title=SQL-86&action=edit&redlink=1" class="new" title="SQL-86 (없는 문서)">SQL-86</a></li> <li><a href="/w/index.php?title=SQL-89&action=edit&redlink=1" class="new" title="SQL-89 (없는 문서)">SQL-89</a></li> <li><a href="/w/index.php?title=SQL-92&action=edit&redlink=1" class="new" title="SQL-92 (없는 문서)">SQL-92</a></li> <li><a href="/w/index.php?title=SQL:1999&action=edit&redlink=1" class="new" title="SQL:1999 (없는 문서)">SQL:1999</a></li> <li><a href="/w/index.php?title=SQL:2003&action=edit&redlink=1" class="new" title="SQL:2003 (없는 문서)">SQL:2003</a></li> <li><a href="/wiki/SQL:2008" title="SQL:2008">SQL:2008</a></li> <li><a href="/wiki/SQL:2011" title="SQL:2011">SQL:2011</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">키워드</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/DELETE_(SQL)" class="mw-redirect" title="DELETE (SQL)">DELETE</a></li> <li><a href="/w/index.php?title=FROM_(SQL)&action=edit&redlink=1" class="new" title="FROM (SQL) (없는 문서)">FROM</a></li> <li><a href="/w/index.php?title=HAVING_(SQL)&action=edit&redlink=1" class="new" title="HAVING (SQL) (없는 문서)">HAVING</a></li> <li><a href="/wiki/INSERT_(SQL)" class="mw-redirect" title="INSERT (SQL)">INSERT</a></li> <li><a href="/wiki/JOIN_(SQL)" class="mw-redirect" title="JOIN (SQL)">JOIN</a></li> <li><a href="/wiki/MERGE_(SQL)" class="mw-redirect" title="MERGE (SQL)">MERGE</a></li> <li><a href="/wiki/NULL_(SQL)" class="mw-redirect" title="NULL (SQL)">NULL</a></li> <li><a href="/w/index.php?title=ORDER_BY&action=edit&redlink=1" class="new" title="ORDER BY (없는 문서)">ORDER BY</a></li> <li><a href="/w/index.php?title=PREPARE_(SQL)&action=edit&redlink=1" class="new" title="PREPARE (SQL) (없는 문서)">PREPARE</a></li> <li><a href="/wiki/SELECT_(SQL)" class="mw-redirect" title="SELECT (SQL)">SELECT</a></li> <li><a href="/wiki/TRUNCATE_(SQL)" title="TRUNCATE (SQL)">TRUNCATE</a></li> <li><a href="/w/index.php?title=UNION_(SQL)&action=edit&redlink=1" class="new" title="UNION (SQL) (없는 문서)">UNION</a></li> <li><a href="/wiki/UPDATE_(SQL)" class="mw-redirect" title="UPDATE (SQL)">UPDATE</a></li> <li><a href="/wiki/WHERE_(SQL)" title="WHERE (SQL)">WHERE</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r36480591" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r38501015" /></div><div role="navigation" class="navbox" aria-labelledby="데이터베이스_관리_시스템" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r36480591" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r38585741" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-보기"><a href="/wiki/%ED%8B%80:%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="틀:데이터베이스"><abbr title="이 틀을 보기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">v</abbr></a></li><li class="nv-토론"><a href="/w/index.php?title=%ED%8B%80%ED%86%A0%EB%A1%A0:%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4&action=edit&redlink=1" class="new" title="틀토론:데이터베이스 (없는 문서)"><abbr title="이 틀에 관해 토론하기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">t</abbr></a></li><li class="nv-편집"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%AC%B8%EC%84%9C%ED%8E%B8%EC%A7%91/%ED%8B%80:%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="특수:문서편집/틀:데이터베이스"><abbr title="이 틀을 편집하기" style=";;background:none transparent;border:none;box-shadow:none;padding:0;">e</abbr></a></li></ul></div><div id="데이터베이스_관리_시스템" style="font-size:114%;margin:0 4em"><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C" title="데이터베이스 관리 시스템">데이터베이스 관리 시스템</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AA%A8%EB%8D%B8" title="데이터 모델">데이터 모델</a></li> <li><a href="/wiki/%EA%B4%80%EA%B3%84_%EB%AA%A8%EB%8D%B8" class="mw-redirect" title="관계 모델">관계 모델</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%84%A4%EA%B3%84" title="데이터베이스 설계">데이터베이스 설계</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%A0%95%EA%B7%9C%ED%99%94" title="데이터베이스 정규화">정규화</a></li> <li><a href="/wiki/%EC%B0%B8%EC%A1%B0_%EB%AC%B4%EA%B2%B0%EC%84%B1" title="참조 무결성">참조 무결성</a></li> <li><a href="/wiki/%EA%B4%80%EA%B3%84%EB%8C%80%EC%88%98" title="관계대수">관계대수</a></li> <li><a href="/wiki/%EA%B4%80%EA%B3%84%EB%85%BC%EB%A6%AC" class="mw-redirect" title="관계논리">관계논리</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C" title="데이터베이스 관리 시스템">데이터베이스 관리 시스템</a></li> <li><a href="/wiki/%EA%B4%80%EA%B3%84_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C" class="mw-redirect" title="관계 데이터베이스 관리 시스템">관계 데이터베이스 관리 시스템</a></li> <li><a href="/wiki/%EA%B0%9D%EC%B2%B4_%EA%B4%80%EA%B3%84_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="객체 관계 데이터베이스">객체 관계 데이터베이스</a></li> <li><a href="/wiki/%EB%B6%84%EC%82%B0_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="분산 데이터베이스">분산 데이터베이스</a></li> <li><a href="/wiki/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98_%EC%B2%98%EB%A6%AC" title="트랜잭션 처리">트랜잭션 처리</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">개념</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4" title="데이터베이스">데이터베이스</a></li> <li><a href="/wiki/ACID" title="ACID">ACID</a></li> <li><a href="/wiki/CRUD" title="CRUD">CRUD</a></li> <li><a href="/wiki/Null_(SQL)" title="Null (SQL)">Null</a></li> <li><a href="/wiki/%ED%9B%84%EB%B3%B4_%ED%82%A4" title="후보 키">후보 키</a></li> <li><a href="/wiki/%EC%99%B8%EB%9E%98_%ED%82%A4" title="외래 키">외래 키</a></li> <li><a href="/wiki/%EA%B8%B0%EB%B3%B8_%ED%82%A4" title="기본 키">기본 키</a></li> <li><a href="/wiki/%EC%8A%88%ED%8D%BC_%ED%82%A4" title="슈퍼 키">슈퍼 키</a></li> <li><a href="/wiki/%EB%8C%80%EB%A6%AC_%ED%82%A4" title="대리 키">대리 키</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">개체</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/%EA%B4%80%EA%B3%84_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="관계 (데이터베이스)">관계</a> (<a href="/wiki/%ED%85%8C%EC%9D%B4%EB%B8%94_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="테이블 (데이터베이스)">테이블</a>  <span style="font-weight:bold;">·</span>  <a href="/wiki/%EC%BB%AC%EB%9F%BC_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="컬럼 (데이터베이스)">컬럼</a>  <span style="font-weight:bold;">·</span>  <a href="/wiki/%EB%A1%9C%EC%9A%B0_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="로우 (데이터베이스)">로우</a>)</li> <li><a href="/wiki/%EB%B7%B0_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" class="mw-redirect" title="뷰 (데이터베이스)">뷰</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98" title="데이터베이스 트랜잭션">트랜잭션</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EB%A1%9C%EA%B7%B8" class="mw-redirect" title="데이터베이스 로그">로그</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%A6%AC%EA%B1%B0" title="데이터베이스 트리거">트리거</a></li> <li><a href="/wiki/%EC%9D%B8%EB%8D%B1%EC%8A%A4_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" title="인덱스 (데이터베이스)">인덱스</a></li> <li><a href="/wiki/%EC%A0%80%EC%9E%A5_%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80" title="저장 프로시저">저장 프로시저</a></li> <li><a href="/wiki/%EC%BB%A4%EC%84%9C_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" class="mw-redirect" title="커서 (데이터베이스)">커서</a></li> <li><a href="/wiki/%EB%B6%84%ED%95%A0_(%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4)" class="mw-redirect" title="분할 (데이터베이스)">분할</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/SQL" title="SQL">SQL</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/SELECT_(SQL)" class="mw-redirect" title="SELECT (SQL)">SELECT</a></li> <li><a href="/wiki/INSERT_(SQL)" class="mw-redirect" title="INSERT (SQL)">INSERT</a></li> <li><a href="/wiki/UPDATE_(SQL)" class="mw-redirect" title="UPDATE (SQL)">UPDATE</a></li> <li><a href="/wiki/MERGE_(SQL)" class="mw-redirect" title="MERGE (SQL)">MERGE</a></li> <li><a href="/wiki/DELETE_(SQL)" class="mw-redirect" title="DELETE (SQL)">DELETE</a></li> <li><a href="/wiki/JOIN_(SQL)" class="mw-redirect" title="JOIN (SQL)">JOIN</a></li> <li><a href="/wiki/CREATE_(SQL)" title="CREATE (SQL)">CREATE</a></li> <li><a href="/wiki/DROP_(SQL)" class="mw-redirect" title="DROP (SQL)">DROP</a></li> <li><a href="/wiki/COMMIT_(SQL)" title="COMMIT (SQL)">COMMIT</a></li> <li><a href="/wiki/%EB%A1%A4%EB%B0%B1_(%EB%8D%B0%EC%9D%B4%ED%84%B0_%EA%B4%80%EB%A6%AC)" title="롤백 (데이터 관리)">ROLLBACK</a></li> <li><a href="/wiki/TRUNCATE_(SQL)" title="TRUNCATE (SQL)">TRUNCATE</a></li> <li><a href="/wiki/ALTER_(SQL)" title="ALTER (SQL)">ALTER</a></li> <li><a href="/wiki/WHERE_(SQL)" title="WHERE (SQL)">WHERE</a></li> <li><a href="/wiki/SAVEPOINT" title="SAVEPOINT">SAVEPOINT</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">구성요소</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/%EB%8F%99%EC%8B%9C%EC%84%B1_%EC%A0%9C%EC%96%B4" title="동시성 제어">동시성 제어</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%82%AC%EC%A0%84" title="데이터 사전">데이터 사전</a></li> <li><a href="/wiki/JDBC" title="JDBC">JDBC</a></li> <li><a href="/wiki/ODBC" title="ODBC">ODBC</a></li> <li><a href="/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%96%B8%EC%96%B4" title="데이터베이스 언어">데이터베이스 언어</a></li> <li><a href="/wiki/%EC%A7%88%EC%9D%98_%EC%96%B8%EC%96%B4" title="질의 언어">질의 언어</a></li> <li><a href="/wiki/%EC%A7%88%EC%9D%98_%EC%B5%9C%EC%A0%81%ED%99%94" title="질의 최적화">질의 최적화</a></li> <li><a href="/wiki/%EC%A7%88%EC%9D%98_%EA%B3%84%ED%9A%8D" title="질의 계획">질의 계획</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><b>데이터베이스 제품:</b> <a href="/w/index.php?title=%EA%B4%80%EA%B3%84_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98_%EB%B9%84%EA%B5%90&action=edit&redlink=1" class="new" title="관계 데이터베이스 관리 시스템의 비교 (없는 문서)">관계 데이터베이스 관리 시스템의 비교</a></li> <li><a href="/w/index.php?title=%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%97%B0%EA%B2%B0_%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8&action=edit&redlink=1" class="new" title="데이터베이스 연결 클라이언트 (없는 문서)">데이터베이스 연결 클라이언트</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐ext.eqiad.main‐84b6579fc7‐4drlc Cached time: 20250313141147 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.374 seconds Real time usage: 1.318 seconds Preprocessor visited node count: 1051/1000000 Post‐expand include size: 25241/2097152 bytes Template argument size: 84/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 28/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 69260/5000000 bytes Lua time usage: 0.139/10.000 seconds Lua memory usage: 4164184/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1215.963 1 -total 12.32% 149.840 1 틀:각주 10.40% 126.428 1 틀:위키데이터_속성_추적 7.48% 90.936 2 틀:둘러보기_상자 6.82% 82.886 1 틀:SQL 5.37% 65.338 1 틀:웹_인용 3.77% 45.847 2 틀:Harvnb 1.76% 21.402 3 틀:웹아카이브 1.08% 13.107 1 틀:데이터베이스 0.79% 9.554 18 틀:Null_result --> <!-- Saved in parser cache with key kowiki:pcache:936300:|#|:idhash:canonical and timestamp 20250313141147 and revision id 38884360. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">원본 주소 "<a dir="ltr" href="https://ko.wikipedia.org/w/index.php?title=Join_(SQL)&oldid=38884360">https://ko.wikipedia.org/w/index.php?title=Join_(SQL)&oldid=38884360</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%ED%8A%B9%EC%88%98:%EB%B6%84%EB%A5%98" title="특수:분류">분류</a>: <ul><li><a href="/wiki/%EB%B6%84%EB%A5%98:SQL_%ED%82%A4%EC%9B%8C%EB%93%9C" title="분류:SQL 키워드">SQL 키워드</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">숨은 분류: <ul><li><a href="/wiki/%EB%B6%84%EB%A5%98:%ED%95%B4%EA%B2%B0%EB%90%98%EC%A7%80_%EC%95%8A%EC%9D%80_%EC%86%8D%EC%84%B1%EC%9D%B4_%EC%9E%88%EB%8A%94_%EB%AC%B8%EC%84%9C" title="분류:해결되지 않은 속성이 있는 문서">해결되지 않은 속성이 있는 문서</a></li><li><a href="/wiki/%EB%B6%84%EB%A5%98:%EC%9B%B9%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C_%ED%8B%80_%EC%9B%A8%EC%9D%B4%EB%B0%B1_%EB%A7%81%ED%81%AC" title="분류:웹아카이브 틀 웨이백 링크">웹아카이브 틀 웨이백 링크</a></li><li><a href="/wiki/%EB%B6%84%EB%A5%98:Harv_%EB%B0%8F_Sfn%EC%97%90_%EB%8C%80%EC%83%81%EC%9D%B4_%EC%97%86%EB%8A%94_%EC%98%A4%EB%A5%98%EA%B0%80_%EC%9E%88%EB%8A%94_%EB%AC%B8%EC%84%9C" title="분류:Harv 및 Sfn에 대상이 없는 오류가 있는 문서">Harv 및 Sfn에 대상이 없는 오류가 있는 문서</a></li><li><a href="/wiki/%EB%B6%84%EB%A5%98:%EC%9C%84%ED%82%A4%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%86%8D%EC%84%B1_P373%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%AC%B8%EC%84%9C" title="분류:위키데이터 속성 P373을 사용하는 문서">위키데이터 속성 P373을 사용하는 문서</a></li><li><a href="/wiki/%EB%B6%84%EB%A5%98:%EC%9C%84%ED%82%A4%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%86%8D%EC%84%B1_P7859%EB%A5%BC_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%AC%B8%EC%84%9C" title="분류:위키데이터 속성 P7859를 사용하는 문서">위키데이터 속성 P7859를 사용하는 문서</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> 이 문서는 2025년 3월 13일 (목) 23:11에 마지막으로 편집되었습니다.</li> <li id="footer-info-copyright">모든 문서는 <a rel="nofollow" class="external text" href="//creativecommons.org/licenses/by-sa/4.0/deed.ko">크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0</a>에 따라 사용할 수 있으며, 추가적인 조건이 적용될 수 있습니다. 자세한 내용은 <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/ko">이용 약관</a>을 참고하십시오.<br />Wikipedia®는 미국 및 다른 국가에 등록되어 있는 <a rel="nofollow" class="external text" href="https://www.wikimediafoundation.org">Wikimedia Foundation, Inc.</a> 소유의 등록 상표입니다.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">개인정보처리방침</a></li> <li id="footer-places-about"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%86%8C%EA%B0%9C">위키백과 소개</a></li> <li id="footer-places-disclaimers"><a href="/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%A9%B4%EC%B1%85_%EC%A1%B0%ED%95%AD">면책 조항</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">행동 강령</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">개발자</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/ko.wikipedia.org">통계</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">쿠키 정책</a></li> <li id="footer-places-mobileview"><a href="//ko.m.wikipedia.org/w/index.php?title=Join_(SQL)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">모바일 보기</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>검색</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="위키백과 검색"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="특수:검색"> </div> <button class="cdx-button cdx-search-input__end-button">검색</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="목차" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="목차 토글" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">목차 토글</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Join (SQL)</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>21개 언어</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>새 주제</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5886496d-tnfs5","wgBackendResponseTime":176,"wgPageParseReport":{"limitreport":{"cputime":"0.374","walltime":"1.318","ppvisitednodes":{"value":1051,"limit":1000000},"postexpandincludesize":{"value":25241,"limit":2097152},"templateargumentsize":{"value":84,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":28,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":69260,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1215.963 1 -total"," 12.32% 149.840 1 틀:각주"," 10.40% 126.428 1 틀:위키데이터_속성_추적"," 7.48% 90.936 2 틀:둘러보기_상자"," 6.82% 82.886 1 틀:SQL"," 5.37% 65.338 1 틀:웹_인용"," 3.77% 45.847 2 틀:Harvnb"," 1.76% 21.402 3 틀:웹아카이브"," 1.08% 13.107 1 틀:데이터베이스"," 0.79% 9.554 18 틀:Null_result"]},"scribunto":{"limitreport-timeusage":{"value":"0.139","limit":"10.000"},"limitreport-memusage":{"value":4164184,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n}\ntemplate_list = table#1 {\n [\"Harvnb\"] = 2,\n [\"Null result\"] = 18,\n [\"SQL\"] = 1,\n [\"각주\"] = 1,\n [\"데이터베이스\"] = 1,\n [\"웹 인용\"] = 1,\n [\"웹아카이브\"] = 3,\n [\"위키데이터 속성 추적\"] = 1,\n}\narticle_whitelist = table#1 {\n}\n"},"cachereport":{"origin":"mw-api-ext.eqiad.main-84b6579fc7-4drlc","timestamp":"20250313141147","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Join (SQL)","url":"https:\/\/ko.wikipedia.org\/wiki\/Join_(SQL)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q2003535","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q2003535","author":{"@type":"Organization","name":"\uc704\ud0a4\ubbf8\ub514\uc5b4 \ud504\ub85c\uc81d\ud2b8 \uae30\uc5ec\uc790"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2013-04-18T10:41:22Z","dateModified":"2025-03-13T14:11:43Z"}</script> </body> </html>