복붙노트

[SQL] SQL에서 여러 테이블을 조인

SQL

SQL에서 여러 테이블을 조인

누군가가 나에 대한 조인 설명 할 수 있습니까?

내부 어디 조건에 기초하여 선택에게 공통 데이터를 조인.

왼쪽 외부는 선택을 일반에 관계없이 왼쪽에서 모든 데이터를 결합하지만 마우스 오른쪽 버튼으로 외부에 대한 반대 권리 테이블과 그에서 공통의 데이터를합니다.

이 5, 8, 10 개 테이블에 가입 할 때 나는 기초하지만 질문의 숙박을 알고있다.

내가 가입 10 개 테이블이 있다고 가정하자. 나는 내부는 지금 처음 5 개 테이블에 가입하고있는 경우 왼쪽 쿼리가 어떻게 작동하는지 지금, 6 테이블과 조인 적용하려고?

내가 먼저 5 개 테이블의 현재 결과 집합이 왼쪽 테이블로 이동합니다 및 6 일 오른쪽 테이블로 considerded됩니다 말을 의미합니까? 권리로 왼쪽, 6 또는에서만 다섯 번째 테이블은 고려 될 것이다? 이에 관한 제발 도와주세요.

해결법

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

    1.각각의 출력이 가입 여러 테이블을 조인 할 때 논리적으로 다음 조인에 들어가는 가상 테이블을 형성한다.

    각각의 출력이 가입 여러 테이블을 조인 할 때 논리적으로 다음 조인에 들어가는 가상 테이블을 형성한다.

    그래서 질문의 예에서 첫 번째 5 개 테이블을 조인의 복합 결과는 왼쪽 테이블로 취급 될 것이다.

    이것에 대해 더 많은 것을 위해 Itzik 벤 웨이 코 뮤니시의 논리 질의 처리 포스터를 참조하십시오.

    에 관련된 가상 테이블은 ON 절을 배치하여 제어 할 수 있습니다 조인. 예를 들면

    SELECT *
    FROM   T1
           INNER JOIN T2
             ON T2.C = T1.C
           INNER JOIN T3
                      LEFT JOIN T4
                        ON T4.C = T3.C
             ON T3.C = T2.C 
    

    내부 조인 (T1 내부는 T2 가입)에 해당합니다 (T3 왼쪽 T4 가입)

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

    2.전자는 올 그래서, 순서에의 가입을 생각하는 것이 도움이됩니다.

    전자는 올 그래서, 순서에의 가입을 생각하는 것이 도움이됩니다.

    SELECT *
      FROM a
      INNER JOIN b ON b.a = a.id
      INNER JOIN c ON c.b = b.id
      LEFT JOIN d ON d.c = c.id
      LEFT JOIN e ON e.d = d.id
    

    모두 ON 모든 조건이 일치 A와 B와 C의 필드 플러스의 기준과 일치하는 D의 값 더하기 모든 조건이 일치하는 전자의 모든 내용을 할 것이다.

    나는 오른쪽을 알고 완벽하게 수용 가입,하지만 난 그게 필요하다고 내 경험에서 발견 한 - 나는 거의 언제나 왼쪽에서 오른쪽으로 일을 가입 할 수 있습니다.

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

    3.> 간단한 INNER보기 코드를 가입 ...

    > 간단한 INNER보기 코드를 가입 ...

    CREATE VIEW room_view
    AS SELECT a.*,b.*
    FROM j4_booking a INNER JOIN j4_scheduling b
    on a.room_id = b.room_id;
    
  4. ==============================

    4.이 같은 가입 적용 할 수 있습니다 ..

    이 같은 가입 적용 할 수 있습니다 ..

    select a.*,b.*,c.*,d.*,e.*  
    from [DatabaseName].[Table_a] a 
    INNER JOIN [DatabaseName].[Table_b] b ON a.id = b.id 
    INNER JOIN [DatabaseName].[Table_c] c ON b.id=c.id 
    INNER JOIN [DatabaseName].[Table_d] d on c.id=d.id 
    INNER JOIN [DatabaseName].[Table_e] e on d.id=e.id where a.con=5  and 
    b.con=6
    

    여기서, a 대신. *에서 어디 상태에서, 당신은 어디 상태에서 당신이 좋아하는 열 (출원) 및 따라 상태를 표시 할 수 있습니다. 당신은 당신의 선택에 따라 더 테이블과 데이터베이스를 삽입 할 수 있습니다. 당신이 다른 데이터베이스에서 작동하지만 마음 당신은 언급 데이터베이스 이름 및 별명에 필요.

  5. from https://stackoverflow.com/questions/15987321/joining-multiple-tables-in-sql by cc-by-sa and MIT license