# 中的多表格支援Direct Discovery

透過 Direct Discovery，您可使用 ANSI SQL 聯結功能載入更多表格或檢視。

在單一圖表中，所有量值必須衍生自 Qlik Sense 中的相同邏輯表格，但可以是透過 join 陳述式連結的來源，由數個表格所組成。不過，您可在相同圖表中使用源自其他表格的維度。

例如，您可使用 Where 子句或 Join 子句，連結使用 Direct Discovery 所載入的表格。

* 在帶有大資料集的記憶體案例中，可以採用單個事實/多維度的方式部署 Direct Discovery。
* Direct Discovery 可以與符合以下任何標準的多個表格配合使用：
  * 聯結中索引鍵欄位的基數低。

  * 聯結中索引鍵欄位的基數高，DirectEnableSubquery 設為 true，並且所有表格均已與 Direct Discovery 聯結。

    如需詳細資訊，請參閱[使用子查詢和 Direct Discovery](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Sense_Hub/DirectDiscovery/using-subqueries-direct-discovery.htm)。
* Direct Discovery 不適合在所有表格均為 Direct Discovery 型式的第三正規化型式案例中部署。

## 連結 Direct Discovery 表格與 Where 子句

在此指令碼範例中，我們從資料庫 AW2012 載入資料。Product 和 ProductSubcategory 表格是使用 Where 子句透過共同的 ProductSubCategoryID 欄位所連結的。

```

      Product_Join:
DIRECT QUERY  
DIMENSION
   [ProductID],
   [AW2012].[Production].[Product].[Name] as [Product Name],
   [AW2012].[Production].[ProductSubcategory].[Name] as [Sub Category Name],
   Color,
   [AW2012].[Production].[Product].ProductSubcategoryID as [SubcategoryID]
MEASURE
   [ListPrice]   
FROM [AW2012].[Production].[Product],
     [AW2012].[Production].[ProductSubcategory]
WHERE [AW2012].[Production].[Product].ProductSubcategoryID = 
      [AW2012].[Production].[ProductSubcategory].ProductSubcategoryID   ;
        
```

## 連結 Direct Discovery 表格與 Join On 子句

您也可以使用 Join On 子句連結 Direct Discovery 表格。在此陳述式範例中，我們透過 SalesOrderID 欄位將 SalesOrderHeader 表格聯結至 SalesOrderDetail 表格，並透過 Customer ID 欄位將 Customer 表格聯結至 SalesOrderHeader 表格。

在此範例中，我們從相同邏輯表格建立量值，這表示我們可以在相同圖表中使用這些量值。例如，您可使用 SubTotal 和 OrderQty 作為量值來建立圖表。

```
Sales_Order_Header_Join:
DIRECT QUERY
DIMENSION 
   AW2012.Sales.Customer.CustomerID as CustomerID,
   AW2012.Sales.SalesOrderHeader.SalesPersonID as SalesPersonID,
   AW2012.Sales.SalesOrderHeader.SalesOrderID as SalesOrderID,
   ProductID,
   AW2012.Sales.Customer.TerritoryID as TerritoryID,
   OrderDate,
   NATIVE('month([OrderDate])') as OrderMonth, 
   NATIVE('year([OrderDate])') as OrderYear 
MEASURE
   SubTotal,
   TaxAmt,
   TotalDue,
   OrderQty
DETAIL
   DueDate,
   ShipDate,
   CreditCardApprovalCode,
   PersonID,
   StoreID,
   AccountNumber,
   rowguid,
   ModifiedDate   
FROM AW2012.Sales.SalesOrderDetail 
   JOIN AW2012.Sales.SalesOrderHeader
   ON (AW2012.Sales.SalesOrderDetail.SalesOrderID = 
       AW2012.Sales.SalesOrderHeader.SalesOrderID)
   JOIN AW2012.Sales.Customer 
   ON(AW2012.Sales.Customer.CustomerID = 
      AW2012.Sales.SalesOrderHeader.CustomerID);
```