# Använda mappning som ett alternativ till länkning

Join-prefixet i Qlik Sense är ett kraftfullt sätt att kombinera flera datatabeller i datamodellen.

En nackdel är att de kombinerade tabellerna kan bli stora och skapa prestandaproblem. Ett alternativ till Join i situationer när du behöver slå upp ett enda värde från en annan tabell är att använda mappning i stället. Detta kan göra så att du slipper ladda onödiga data som gör beräkningarna långsammare och kan skapa beräkningsfel, eftersom joins kan ändra antalet poster i tabellerna.

En mappningstabell består av två kolumner: ett jämförelsefält (indata) och ett mappningsvärdesfält (utdata).

I det här exemplet har vi en tabell med order (Orders) och behöver veta kundens länder, som finns lagrade i kundtabellen (Customers).

OrdersOrders-datatabell

| Order-ID | OrderDate | ShipperID | Freight | Kund-id |
| --- | --- | --- | --- | --- |
| 12987 | 2007-12-01 | 1 | 27 | 3 |
| 12988 | 2007-12-01 | 1 | 65 | 4 |
| 12989 | 2007-12-02 | 2 | 32 | 2 |
| 12990 | 2007-12-03 | 1 | 76 | 3 |

CustomersCustomers-datatabell

| Kund-id | Namn | Land | ... |
| --- | --- | --- | --- |
| 1 | DataSales | Spanien | ... |
| 2 | BusinessCorp | Italien | ... |
| 3 | TechCo | Tyskland | ... |
| 4 | Mobecho | Frankrike | ... |

För att slå upp landet (Country) för en kund behöver vi en mappningstabell som ser ut så här:

Mappningstabell

| Kund-id | Land |
| --- | --- |
| 1 | Spanien |
| 2 | Italien |
| 3 | Tyskland |
| 4 | Frankrike |

Mappningstabellen, som vi kallar MapCustomerIDtoCountry, är definierad i skriptet enligt följande:

```
     MapCustomerIDtoCountry:
     Mapping LOAD CustomerID, Country From Customers ;
     
```

Nästa steg är att tillämpa mappningen med hjälp av funktionen ApplyMap när vi laddar sorteringstabellen:

```
Orders:
     LOAD *,
          ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country
          From Orders ;
     
```

Den tredje parametern av funktionen ApplyMap används för att definiera vad som ska returneras när ett värde inte hittas i mappningstabellen, i det här fallet Null().

Tabellen som skapas ser ut så här:

Resultattabell

| Order-ID | OrderDate | ShipperID | Freight | Kund-id | Land |
| --- | --- | --- | --- | --- | --- |
| 12987 | 2007-12-01 | 1 | 27 | 3 | Tyskland |
| 12988 | 2007-12-01 | 1 | 65 | 4 | Frankrike |
| 12989 | 2007-12-02 | 2 | 32 | 2 | Italien |
| 12990 | 2007-12-03 | 1 | 76 | 3 | Tyskland |

## Mer information

* [ApplyMap Skriptfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/MappingFunctions/ApplyMap.htm)
* [Mappning](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Mapping.htm)