2013-12-17 5 views
0

내 데이터베이스로 액세스를 사용하고 있으며 정확한 데이터를 선택하기 위해 쿼리를 실행하는 데 문제가 있습니다. WHERE 절에서이 특정 값에 대해 실제로 쿼리가 모든 레코드를 반환하는 것처럼 보일 때, 이는 단지 1을 반환해야합니다.두 개 이상의 테이블에서 데이터 선택

아이디어는 '요청 상자'테이블을 기반으로 '요청 상자'테이블을 사용하는 것입니다. 값을 WHERE 절에 입력하고이 값을 사용하여 'Boxes'테이블에서 데이터를 가져옵니다. 누군가가 내 초보자 오류를 지적 할 수 있으면 고맙겠습니다. 나는이 db를 상속 받았으며 그것을 변경하는 옵션이 없다고 덧붙이고 싶습니다. 많은 감사합니다

My db 설정은 다음과 같습니다.

요청 박스

요청없이

박스

박스

박스

CustRef

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " & 
        "FROM [Request Boxes], Boxes WHERE [Request Boxes].[Request no] = '" & item & "'" 

업데이트 된 코드 :

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " & 
        "FROM [Request Boxes] INNER JOIN Boxes ON [Request Boxes].Box = Boxes.Box " & 
        "WHERE ((([Request Boxes].[Request no]) = '" & item & "')" & 
        "AND ([Request Boxes].[Customer] = '" & customer2 & "') AND (Boxes.Status = '" & status & "'))" 

답변

1

당신은 당신의 FROM 절을 두 개의 테이블을 조인하는이 ...

FROM [Request Boxes], Boxes 

이 당신이 Request Boxes에 연결된 모든 Boxes 행을 얻을 것이다 의미 행을 올바르게 선택하고 있습니다. 이 내용은 일치하는 Boxes 행이 [Request Boxes] 행에 연결되어 있는지 확인합니다

FROM [Request Boxes], Boxes ON [Request Boxes].[Box] = [Boxes].[Box] 

Boxes 행 일치를 선택하려면 ... FROMON 절을 추가합니다.

+0

브라이언, 단지 1 문제. 업데이트 된 코드에서이 줄 (Boxes.Status = ' "& status &"') 때문에 쿼리가 실패했습니다. 줄을 제거하면 잘 표시됩니다. 디버깅을했고 올바른 값이 전달된다는 것을 알고 있습니다. 나는 어디로 잘못 갔습니까? 감사합니다 – user1532468

+0

하나의 작은 조언, vb.net 또는 C#에서 SQL 쿼리를 사용하여 좋지 않습니다. 이러한 쿼리를 SQL Server의 저장 프로 시저에 작성하고 코드에서 호출하는 것이 항상 좋습니다. – Hoh

+0

@ user1532468 님, 상태가 번호입니까? 그렇다면 작은 따옴표가 필요하지 않습니다. –

관련 문제