# Obsługa wielu tabel w Direct Discovery

W ramach Direct Discovery można załadować więcej niż jedną tabelę lub widok za pomocą instrukcji join ANSI SQL.

W pojedynczym wykresie wszystkie miary muszą pochodzić z tej samej tabeli logicznej Qlik Sense, która może być kombinacją kilku tabel ze źródła powiązanego przy użyciu instrukcji join. Jednak w tym samym wykresie można korzystać z wymiarów pochodzących z innych tabel.

Na przykład tabele załadowane za pomocą Direct Discovery można powiązać przy użyciu klauzuli Where lub Join.

* Direct Discovery można wdrożyć w pamięci głównej w ramach scenariusza pojedynczego lub wielowymiarowego z dużymi zestawami danych.
* Direct Discovery można stosować z więcej niż jedną tabelą, która spełnia dowolne z poniższych kryteriów:
  * Liczebność pola klucza w instrukcji join jest niska.

  * Liczebność pola klucza w instrukcji join jest wysoka, parametr DirectEnableSubquery ma wartość true oraz wszystkie tabele zostały połączone za pomocą Direct Discovery.

    Więcej informacji zawiera temat [Korzystanie z zapytań podrzędnych w Direct Discovery](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DirectDiscovery/using-subqueries-direct-discovery.htm).
* Direct Discovery nie powinno się wdrażać w ramach scenariusza trzeciej postaci normalnej ze wszystkimi tabelami w postaci Direct Discovery.

## Łączenie tabel Direct Discovery z klauzulą Where

W przykładowym skrypcie dane są ładowane z bazy danych AW2012. Tabele Product i ProductSubcategory są powiązane za pomocą klauzuli Where przy użyciu wspólnego pola 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   ;
        
```

## Łączenie tabel Direct Discovery z klauzulami Join On

W celu tworzenia powiązań tabel Direct Discovery można również korzystać z klauzul Join On. W tej przykładowej instrukcji tabela SalesOrderHeader jest powiązywana z tabelą SalesOrderDetail za pośrednictwem pola SalesOrderID, a tabela Customer jest powiązywana z tabelą SalesOrderHeader za pośrednictwem pola Customer ID.

W tym przykładzie tworzymy miary z tej samej tabeli logicznej, co oznacza, że możemy z nich korzystać w tym samym wykresie. Na przykład można utworzyć wykres, w którym miarami będą SubTotal i 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);
```