ADO에서 SELECT 구문 5 사용
저자:Eve Cole
업데이트 시간:2009-05-30 19:54:26
가입하다
JOIN 연결은 다음 세 가지 유형을 포함하여 두 테이블의 필드 레코드를 결합합니다.
INNER JOIN 연산 수식: 두 테이블의 필드 레코드를 결합하고 결합합니다.
LEFT JOIN 연산 수식: 두 테이블의 필드 레코드를 조인하고 결합하며 LEFT JOIN의 왼쪽 테이블에 있는 모든 레코드를 포함합니다.
RIGHT JOIN 연산식: 두 테이블의 필드 레코드를 조인하고 결합하며 RIGHT JOIN 오른쪽 테이블의 모든 레코드를 포함합니다.
INNER JOIN은 두 테이블에 관련된 연산식을 설정하여 두 테이블의 필드 레코드를 연결하고 결합합니다.
INNER JOIN 구문은 다음과 같습니다.
FROM 표 1 INNER JOIN 표 2 ON 표 1. 필드 1 비교 연산자 표 2. 필드 2
[Table 1. Field 1 = Table 2. Field 2]와 같이 두 테이블을 연결하는 데 사용되는 필드는 필드 유형이 동일해야 하지만 필드 이름은 동일할 필요는 없습니다.
예를 들어 AutoNumber 필드 유형은 Long 필드 유형에 연결될 수 있지만 Single Integer 필드 유형은 Double Integer 필드 유형에 연결될 수 없습니다.
비교 연산자는 =, <, >, <=, >= 또는 <>일 수 있습니다.
JOIN으로 연결된 필드에는 MEMO 필드 유형이나 OLE 객체 유형이 포함될 수 없습니다. 그렇지 않으면 오류가 발생합니다.
JOIN 표현식에서는 여러 ON 절을 연결할 수 있습니다.
필드 선택
FROM 테이블 1 INNER JOIN 테이블 2
ON 표 1. 필드 1 비교 연산자 표 2. 필드 1 AND
ON 표 1. 필드 2 비교 연산자 표 2. 필드 2) OR
ON 테이블 1. 필드 3 비교 연산자 테이블 2. 필드 3)
JOIN 표현식은 중첩될 수 있습니다.
필드 선택
표 1에서 내부 조인
(표 2 INNER JOIN [( ]표 3
[INNER JOIN [( ] 테이블 x [INNER JOIN ...)]
ON 표 3. 필드 3 비교 연산자 테이블 x)]
ON 표 2. 필드 2 비교 연산자 표 3. 필드 3)
ON 표 1. 필드 1 비교 연산자 표 2. 필드 2
INNER JOIN에는 중첩된 LEFT JOIN 또는 RIGHT JOIN이 포함될 수 있지만 LEFT JOIN 또는 RIGHT JOIN에는 중첩된 INNER JOIN이 포함될 수 없습니다.
ASP 프로그램에서 이 SQL 명령을 사용하는 예를 살펴보겠습니다.
Inner Join...On을 사용하여 두 테이블의 레코드를 결합할 수 있습니다. 예를 들어 ASP 프로그램 rs26.asp는 [판매 코드, 제품 이름, 판매 수량을 선택합니다. Inner Join Product On Product. Code = Sales.Code], Inner Join...On을 사용하여 두 테이블과 관련된 계산 수식을 설정하고 두 테이블의 레코드를 결합합니다.
<%
conn1 = Server.CreateObject("ADODB.Connection") 설정
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver(*.mdb)};DriverId=25;FIL=MS Access;"
rs3 = Server.CreateObject("ADODB.Recordset") 설정
sql = "SalesInner에서 Sales.Code, Product.Name, Product.Price, Sales.Quantity를 선택하여 ProductOn Product.Code = Sales.Code에 가입하세요."
rs3.SQL 열기, conn1,1,1,1
%>
<테이블 COLSPAN=8 셀 패딩=5 테두리=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">코드</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">이름</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">가격</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">수량</FONT></TD>
</TR>
<% rs3.EOF가 아닌 동안 수행 %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
</TR>
<%
rs3.다음으로 이동
고리
rs3.닫기
%>
</TABLE>
위의 ASP 프로그램 rs26.asp는 클라이언트 측 브라우저를 사용하여 실행 결과를 찾아보고 판매 테이블에 이름 필드와 가격 필드가 없으므로 [Inner Join Product On Product. 코드 = Sales.Code] 상품 테이블의 이름 필드와 가격 필드에 있는 데이터를 찾습니다.
위의 예에서는 내부 조인 구문을 사용합니다.
SalesInner에서 Sales.Code, Product.Name, Product.Price, Sales.Quantity를 선택하세요. ProductOn Product.Code = Sales.Code에 가입하세요.
Where를 사용하면 결과는 다음과 같습니다.
Sales.Code, Product.Name, Product.Price, Sales.Quantity from Sales, Product를 선택합니다. Product.Code = Sales.Code
왼쪽 조인/오른쪽 조인
INNER JOIN 연결은 내부 연결인 두 테이블의 관련 필드 레코드를 결합합니다.
LEFT JOIN 작업을 사용하여 왼쪽 외부 조인을 만듭니다. LEFT JOIN은 두 테이블의 관련 필드 레코드를 얻는 것 외에도 오른쪽 테이블에 일치하는 레코드가 있는지 여부에 관계없이 LEFT JOIN의 왼쪽 테이블에 있는 모든 레코드도 포함합니다.
RIGHT JOIN 작업 사용: 오른쪽 외부 연결을 만듭니다. RIGHT JOIN은 두 테이블의 관련 필드 레코드를 얻는 것 외에도 왼쪽 테이블에 일치하는 레코드가 있는지 여부에 관계없이 RIGHT JOIN의 오른쪽 테이블에 있는 모든 레코드도 포함합니다.
예를 들어, [Sales LEFT JOIN Products]는 모든 판매 기록을 선택할 수 있습니다. [Sell RIGHT JOIN 상품] 모든 상품 레코드를 선택할 수 있습니다.
예를 들어 Left Join...On을 사용하면 두 테이블의 관련 필드 레코드를 얻을 뿐만 아니라 LEFT JOIN의 왼쪽 테이블에 있는 모든 레코드도 포함됩니다. ASP 프로그램 rs26.asp는 다음과 같습니다. code, product.name, product .Price, Sales.Quantity from SalesLeft Join ProductOn Product.Code = Sales.Code], Left Join을 사용하면 LEFT JOIN 왼쪽에 있는 판매 테이블의 모든 레코드가 포함됩니다.
<%
conn1 = Server.CreateObject("ADODB.Connection") 설정
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver(*.mdb)};DriverId=25;FIL=MS Access;"
'conn1.Open "드라이버={SQL Server};서버=(로컬);uid=sa;pwd=;데이터베이스=NtopSamp"
rs3 = Server.CreateObject("ADODB.Recordset") 설정
sql = "SalesLeft에서 Sales.Code, Product.Name, Product.Price, Sales.Quantity를 선택하여 ProductOn Product.Code = Sales.Code에 가입하세요."
rs3.SQL 열기, conn1,1,1,1
%>
<테이블 COLSPAN=8 셀 패딩=5 테두리=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">코드</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">이름</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">가격</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">수량</FONT></TD>
</TR>
<% rs3.EOF가 아닌 동안 수행 %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
<%
rs3.다음으로 이동
고리
rs3.닫기
%>
</TABLE>
위의 ASP 프로그램 rs26.asp의 경우 LEFT JOIN에 이름 필드와 가격 필드가 없으므로 클라이언트 측 브라우저를 사용하여 실행 결과를 검색합니다. 판매 테이블에서 코드번호 4 의 판매 기록을 [Sales Left Join Product On Product.Code = Sales.Code]를 통해 제품 테이블의 이름 필드와 가격 필드의 데이터를 찾습니다. 이름 필드와 가격 필드를 찾을 수 없습니다.
Right Join 사용...On은 두 테이블의 관련 필드 레코드를 가져올 뿐만 아니라 RIGHT JOIN의 오른쪽 테이블에 있는 모든 레코드도 포함합니다. 예를 들어 ASP 프로그램 rs26.asp는 다음과 같습니다. .Code, Product.Name, Product .Price, Sales.Quantity from Sales Right Join Product On Product.Code = Sales.Code], Right Join을 사용하면 RIGHT JOIN 오른쪽에 있는 제품 테이블의 모든 레코드가 포함됩니다.
<%
conn1 = Server.CreateObject("ADODB.Connection") 설정
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver(*.mdb)};DriverId=25;FIL=MS Access;"
rs3 = Server.CreateObject("ADODB.Recordset") 설정
sql = "SalesRight에서 Sales.Code, Product.Name, Product.Price, Sales.Quantity를 선택하여 ProductOn Product.Code = Sales.Code에 가입하세요."
rs3.SQL 열기, conn1,1,1,1
%>
<테이블 COLSPAN=8 셀 패딩=5 테두리=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">코드</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">이름</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">가격</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">수량</FONT></TD>
</TR>
<% rs3.EOF가 아닌 동안 수행 %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
<%
rs3.다음으로 이동
고리
rs3.닫기
%>
</TABLE>
위 ASP 프로그램 rs26.asp의 경우, 제품에 수량 필드가 없기 때문에 클라이언트 측 브라우저를 사용하여 실행 결과를 찾아볼 수 있습니다. RIGHT JOIN 오른쪽에 있는 제품 테이블의 모든 레코드가 표시됩니다. 테이블에서는 코드 번호 4의 제품 레코드가 전달됩니다. [ Sales Right Join Product On Product.Code = Sales.Code] 판매 테이블의 수량 필드에 있는 데이터가 다른 코드의 경우에는 수량 필드의 데이터가 검색되지 않습니다. 설립하다.
알아냈나요?