용도
join: view_name_2 {
foreign_key: dimension_name
}
}
계층 구조
foreign_key |
기본값
없음결제 가능
Looker 측정기준 이름특수 규칙
|
정의
foreign_key
는 뷰와 탐색 간에 조인 관계를 설정합니다. Looker는 foreign_key
에서 참조하는 측정기준과 결합된 뷰의 기본 키를 일치시킵니다. 기본 키 역할을 하는 필드에 primary_key
를 사용 설정하여 조인된 뷰의 기본 키를 설정합니다.
보기는 foreign_key
를 사용할 때 탐색에 직접 결합되거나 이미 해당 탐색에 연결된 두 번째 보기를 통해 결합될 수 있습니다.
뷰가 탐색에 직접 조인되는 첫 번째 케이스의 예는 다음과 같습니다.
explore: order {
join: customer {
foreign_key: customer_id
}
}
customer
의 기본 키 이름을 id
이라고 가정하면 Looker에서 생성한 SQL은 다음과 같습니다.
SELECT ...
FROM order
LEFT JOIN customer
ON order.customer_id = customer.id
두 번째 경우 뷰는 이미 탐색에 참여한 중간 뷰를 통해 탐색에 결합됩니다. 예를 들면 다음과 같습니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
여기에서 customer
는 order_items
에 직접 조인할 수 없습니다. 대신 order
를 통해 조인해야 합니다. order
와 customer
의 기본 키 이름이 id
이라고 가정하면 Looker에서 생성한 SQL은 다음과 같습니다.
SELECT ...
FROM order_items
LEFT JOIN order
ON order_items.order_id = order.id
LEFT JOIN customer
ON order.customer_id = customer.id
올바르게 작동하도록 customer
를 조인할 때 단순히 customer_id
가 아닌 전체 범위 필드 참조 order.customer_id
를 사용했음을 알 수 있습니다. customer_id
만 사용했다면 Looker는 order.customer_id
를 통하지 않고 customer
를 order_items.customer_id
에 직접 조인하려고 시도했을 것입니다.
Examples
customer
의 기본 키를 order.customer_id
와 일치시켜 이름이 order
인 탐색에 customer
라는 뷰를 조인합니다.
explore: order {
join: customer {
foreign_key: customer_id
}
}
customer
라는 뷰를 order
라는 뷰를 통해 order_items
라는 탐색에 조인합니다. customer
의 기본 키를 order.customer_id
와 일치시키고 order
의 기본 키를 order_items.order_id
와 일치시킵니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
이름이 order
및 inventory_item
인 뷰를 order_items
라는 탐색에 조인합니다. order
의 기본 키를 order_items.order_id
와 일치시키고 inventory_item
의 기본 키를 order_items.inventory_id
와 일치시킵니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: inventory_item {
foreign_key: inventory_id
}
}
일반 과제
foreign_key
은(는) 열 이름이 아닌 측정기준 이름을 참조해야 합니다.
foreign_key
매개변수는 기본 SQL 데이터베이스의 열 이름이 아닌 측정기준 이름만 사용합니다. 종종 측정기준 이름과 열 이름이 동일하여 열 이름이 사용될 수 있다는 잘못된 판단으로 이어질 수 있습니다.
기본 키는 foreign_key
와 연결된 뷰에 정의되어야 합니다.
foreign_key
가 제대로 작동하려면 결합 뷰에 있는 측정기준 중 하나를 해당 뷰의 기본 키로 정의해야 합니다. 기본 키는 primary_key
매개변수를 통해 정의됩니다.
단일 측정기준만 기본 키로 정의할 수 있으므로 다중 열 기본 키가 있는 보기에는 foreign_key
를 사용할 수 없습니다. 이러한 상황에서는 sql_on
를 대신 사용해야 합니다.
알아두어야 할 사항
foreign_key
외에도 Looker에서 참여하는 다양한 방법이 있습니다.
일부 조인 관계는 foreign_key
로 설정할 수 없습니다. 예를 들어 조인은 조인된 뷰의 기본 키를 사용하지 않거나 여러 조건이 조인의 일부여야 할 수 있습니다. 이러한 경우에는 sql_on
를 대신 사용하세요.