복붙노트

[SQL] 액세스-SQL : 내부는 여러 테이블에 가입

SQL

액세스-SQL : 내부는 여러 테이블에 가입

나는 데이터베이스에 여러 테이블을 가지고 :

tblOjt

ID    studentid    courseid    companyid    addresseeid    dateadded    datestarted    dateended    ojthours

1         3            1           1             1         9/25/2013                                  500 

tblStudent

ID    lastname    firstname    middlename    course    gender    renderedhours    dateadded    archive

3     Dela Cruz      Juan        Santos       BSIT      Male          500

tblCourse

ID    coursealias    coursename                                            hours
1         BSIT      Bachelor of Science in Information Technology          500

tblCompany

ID    companyname

1      MyCompany

tblAddressee

ID    addresseename

1     John dela Cruz

나는이 값을 얻을 수있는 SQL 문이 필요합니다 :

tableOjt.id  tableOJT.surname,firstname, and middlename  course  companyname  addresseename dateadded datestarted dateended ojthours

내가 어떻게 VB6 ADODC에 서면으로 ... 사람들은 방법을 결합하여 SQL에서이 코드를 얻을 것이다, 이것은 표준 SQL에서 동일한 구문입니까? 감사

해결법

  1. ==============================

    1.Access 데이터베이스 백엔드에 대해 쿼리를 작성하는 경우, 당신은 다음을 사용하는 구문에 가입해야합니다 :

    Access 데이터베이스 백엔드에 대해 쿼리를 작성하는 경우, 당신은 다음을 사용하는 구문에 가입해야합니다 :

    select
      t1.c1
    , t2.c2
    , t3.c3
    , t4.c4
    from ((t1
    inner join t2 on t1.something = t2.something)
    inner join t3 on t2.something = t3.something)
    inner join t4 on t3.something = t4.something
    

    테이블 및 열 이름은 여기에서 중요하지 않습니다,하지만 괄호의 위치입니다. 기본적으로, 당신은 N이 필요합니다 - 절에서 후이 왼쪽 괄호와 하나의 오른쪽 괄호 각각의 새로운의 시작, 여기서 n 함께 결합되는 테이블의 수는 첫 번째를 제외하고 절을 가입하기 전에.

    그 이유는 액세스의 당신이 괄호 안에 여분의 사람을 묶어야합니다 개 이상 가입해야 그렇다면, 한 번에 두 개의 테이블을 조인 구문 지원에 참여할 것입니다.

  2. ==============================

    2.

    SELECT tblOjt.id, tblStudent.firstname, tblStudent.middlename, 
           tblStudent.lastname, tblStudent.course, tblCompany.companyname, 
           tblAddressee.addressee 
    FROM (((tblOjt 
         INNER JOIN tblStudent ON tblOjt.studentid = tblStudent.id) 
         INNER JOIN tblCourse ON tblOjt.courseid = tblCourse.id) 
         INNER JOIN tblCompany ON tblOjt.companyid = tblCompany.id) 
         INNER JOIN tblAddressee ON tblOjt.addresseeid = tbladdressee.id
    

    그것을 발견! 야와 르의 접근 방식 덕분에 ...

  3. ==============================

    3.VBA를 사용하여이 SQL을 실행하기 위해 노력하고 있지만 DoCmd.RunQuery을 사용하여 실행되지 않습니다. 나는 SQL을 시도하고 그래도 일하고있다.

    VBA를 사용하여이 SQL을 실행하기 위해 노력하고 있지만 DoCmd.RunQuery을 사용하여 실행되지 않습니다. 나는 SQL을 시도하고 그래도 일하고있다.

    str = "SELECT tbl_company.[Company], tbl_company.[Commodity], tbl_company.[Segment], tbl_company.[MainProduct]," & _
          " tbl_financials.[DataYear]," & _
          " mstr_financial.[FinancialData]," & _
          " tbl_financials.[Amount]," & _
          " tbl_financials.[Unit]," & _
          " tbl_company.[CompanyID]" & _
          " FROM (tbl_company" & _
          " INNER JOIN tbl_financials ON tbl_company.[CompanyID] = tbl_financials.[CompanyID])" & _
          " INNER JOIN mstr_financial ON tbl_financials.[FinID] = mstr_financial.[FinID] " & _
          " ORDER BY tbl_company.[Company], tbl_financials.[DataYear] DESC"
    
  4. from https://stackoverflow.com/questions/19367565/access-sql-inner-join-with-multiple-tables by cc-by-sa and MIT license