SQL (用於聯結)

本頁面是指 加入程序中的 sql 參數。

sql (適用於欄位) 參數說明頁面所述,sql 也可做為欄位的一部分。

sql (適用於衍生資料表) 參數說明文件頁面所述,sql 也可用於衍生資料表。

定義

sql 可讓您編寫原始 SQL,將檢視區塊彙整至探索。目前幾乎只用於執行 RIGHT JOIN,而 type 參數不支援這項操作。否則,您可以使用更合適的參數來執行聯結。

在 Looker 3.10 之前,sql 是唯一可用的方法,用於執行非 LEFT JOIN 的聯結。舉例來說,在 3.10 之前,您可能已在 INNER JOINmember 檢視畫面之間建立 INNER JOIN,如下所示:event

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

-

自 Looker 3.10 起,應改用 sql_onforeign_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 ;;
}