sql (조인)

이 페이지에서는 join의 일부인 sql 파라미터를 참조합니다.

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

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

정의

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

Looker 3.10 이전에는 sqlLEFT JOIN가 아닌 조인을 실행하는 데 사용할 수 있는 유일한 메서드였습니다. 예를 들어 3.10 이전에는 다음과 같이 event Explore와 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 ;;
}