2013-07-23 1 views
0

저는 연구를 해왔고 하나의 쿼리를 사용하여 여러 테이블에서 데이터를 가져 오는 방법을 찾을 수 없습니다. 내가 달성하고자하는 것은 ... Access 데이터베이스에서 하나 개의 테이블에서 정보를 얻고 동일한 데이터베이스 여기쿼리 2 시도 1 문으로 액세스 테이블

의 다른 테이블에서 더 많은 데이터를 얻기 위해이 정보를 사용하여 내가 지금까지 가지고있는 코드입니다입니다

   string end = "ENDDATE"; 
       string qual = "CGA0113"; 
       string start = "START"; 

       ad.SelectCommand = new OleDbCommand("SELECT* FROM [AC_ECONOMIC] Where KEYWORD = '" + end + "'AND QUALIFIER = '" + qual + "' AND EXPRESSION LIKE 'SN%'", con); 

그 AC_ECONOMIC 테이블에서 위의 쿼리와 동일한 SN을 가진 AC_PROPERTY라는 별도의 테이블에서 데이터를 가져오고 싶습니다. 나는 조인을 연구하고 그것이가는 길이라고 믿지만 문법에 대해 확실하지 않거나 심지어 작동하는지조차 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

당신은'JOIN' 키워드 –

답변

1

올바른 경우 내부 참여가 길일 것입니다. 기본적으로 두 테이블을 공통 필드로 조인하는 명령문을 작성해야합니다. 다음과 같은 내용 :

SELECT * FROM [AC_ECONOMIC] a 
INNER JOIN [AC_PROPERTY] b 
on [AC_ECONOMIC].SN=[AC_PROPERTY].SN 
Where KEYWORD = '" + end + "'AND QUALIFIER = '" + qual + "' AND EXPRESSION LIKE 'SN%' 

위의 문장은 단지 하나의 예입니다. 두 테이블 사이의 공통 열이 실제로 "SN"이라고 불리우는 지 모르겠습니다.

UPDATE : @Geek에 의해 제안

, 당신은 또한 테이블 별명을 당신이 당신의 성명을 참조 할 수 있습니다 후,이 전체 테이블 이름마다 입력에서 당신을 저장합니다. WHERE 절은 양쪽에서 열을 이용하여 "A"(AC_ECONOMIC) 및 B (AC_PROPERTY)를 필터링하는 방법

SELECT a.*, b.* FROM [AC_ECONOMIC] a 
INNER JOIN [AC_PROPERTY] b 
on a.SN=b.SN 
Where a.KEYWORD = '" + end + "'AND a.QUALIFIER = '" + qual + "' AND b.EXPRESSION LIKE 'SN%' 

참고 : 예를 들어, 상기 문로도 쓸 수있다.

+0

을 사용할 필요가 있습니다. 필터 컬럼이 올바른 테이블에서 필터링되고 있는지 확인하기 위해 별명을 붙였습니다. 이것은 단지 개인적인 취향입니다. INNER JOIN [AC_PROPERTY] B에 a.SN = b.SN 어디 a.KEYWORD = ' "+ 단부 +"'AND a.QUALIFIER = ' "+ QUAL +"'[AC_ECONOMIC] FROM *을 선택 AND.EXPRESSION LIKE 'SN %' – tsells

+0

@ Geek 좋은 제안. 내 대답 업데이트 – Icarus

+0

@ Geek 두 분 모두 도움을 주셔서 감사합니다. – Stick