sql (조인용)

이 페이지에서는 조인의 일부인 sql 매개변수를 설명합니다.

sqlsql (필드용) 매개변수 문서 페이지에 설명된 대로 필드의 일부로 사용할 수도 있습니다.

sqlsql(파생된 테이블의 경우) 매개변수 문서 페이지에 설명된 것처럼 파생 테이블의 일부로 사용할 수도 있습니다.

정의

sql를 사용하면 뷰에 탐색에 참여할 원시 SQL을 작성할 수 있습니다. 현재 type 매개변수에서 지원하지 않는 RIGHT JOIN를 실행하는 데 거의 독점적으로 사용됩니다. 그렇지 않으면 조인을 실행하는 데 사용할 더 나은 매개변수가 있습니다.

Looker 3.10 이전에는 sqlLEFT JOIN가 아닌 조인을 실행하는 유일한 방법이었습니다. 예를 들어 3.10 이전에는 다음과 같이 event 탐색과 member 뷰 사이에 INNER JOIN를 만들었을 수 있습니다.

explore: event {
  join: member {
    sql:
      INNER JOIN member
      ON member.id = event.member_id ;;
  }
}

-

Looker 3.10부터 조인은 대신 sql_on 또는 foreign_key를 사용하여 실행해야 하지만 조인 유형은 다음과 같이 type를 사용하여 정의해야 합니다.

# Option 1 Using sql_on
explore: event {
  join: member {
    sql_on: ${member.id} = ${event.member_id} ;;
    type: inner
  }
}

# Option 2 Using foreign_key
explore: event {
  join: member {
    foreign_key: member_id
    type: inner
  }
}

-

sql의 두 번째 일반적인 사용 사례는 '제휴 조인'이라고 하는 두 개의 서로 다른 데이터베이스에서 테이블을 조인하는 것이었습니다. 예를 들어 다음과 같은 LookML을 작성했을 수 있습니다.

# Model File
explore: view_1 {
  join: view_2 {
    sql:
      LEFT JOIN other_db.other_schema.view_2 AS view_2
      ON view_1.something = view_2.something ;;
  }
}

-

이제 다음과 같이 sql_table_name를 대신 사용하면 됩니다.

# Model File
explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.something} = ${view_2.something} ;;
    type: left_outer
  }
}

# View File
view: view_2 {
  sql_table_name: other_db.other_schema.view_2 ;;
}