27 juli 2022

How do I join tables in Qlik Sense?

Deel dit bericht

Every Friday at Bitmetric we’re posting a new Qlik certification practice question to our LinkedIn company page. Last Friday we asked the following Qlik Data Architect certification practice question about joining tables in Qlik Sense:

Qlik certification test question on joining tables in Qlik Sense

The correct answer is D: Right Join

The trick in this question was the load order of the tables. In order to make sure only CarID’s with a target were shown, we needed to right join the first loaded table with the car sales to the table with car targets. All other answers would have kept the CarID’s without a target in the first loaded table.

Most often when creating a data model there will be the need to merge tables with each other, whether it is to enrich the table with extra values or as in this case to only load values we want to have loaded.

To merge the tables the join statement is used before the load statement. The join statement can also be preceded by one of the following prefixes: inner, outer, left, right. These will determine how the previously loaded table will be merged with the table being loaded. The join statement is then followed by the table we would like to compare the values being loaded with. This has to be a previously loaded table. So the full syntax is:

[inner|outer|left|right] Join [(Tablename)] (loadstatement|selectstatement)

To visualize let’s take the following two tables and see how each join works:

Table join in Qlik example

Inner Join

An inner join will only keep the rows that are matching in both tables:

Qlik inner join example

Outer Join

An outer join generates all combinations between both tables:

Qlik outer join example

Left Join

A left join keeps only those field values in the second table that match the link value (key field) of the first loaded table:

Qlik left join example

Right Join

A right join will only keep field values of a previously loaded table matching the link value (key field) of the table being loaded:

Qlik right join example

Now let’s apply this knowledge to the question. We have loaded the Car Sales and the Car Targets tables in that order. We now only want to keep the CarID’s of cars which have a target. This means we have to use the Car Targets table to determine this. So we have to keep the CarID’s from the Car Targets table, which is a right prefix, and since the only one in the question is a right join, that should be the answer:

Qlik keep / join example

So the final script will be:

Other things to keep in mind when joining tables in Qlik

  • Instead of join we could also use keep. This works the same way, but instead of merging the tables into one, it will keep both tables (see the explanation above).
  • Concatenate is another way to join tables. Hereby there is no inner, outer, left, right prefix needed, concatenate will simply append the rows from one table to the other. A rule of thumb is, if you have to add columns to the table you use join, if you have to add rows to the table, you use concatenate.
  • If you don’t specify a prefix and just use join, Qlik will automatically assume an outer join. It is advisable to always specify the type of join to keep your scripting clear and understandable.

That’s it for this week. See you next Friday?

Take your Qlik skills to the next level!

Since 2013, the Masters Summit for Qlik is the premier advanced training for Qlik. Join us in Vienna and take your Qlik skills to the next level.

Join the team!

Do you want to work within a highly-skilled, informal team where craftsmanship, ingenuity, knowledge sharing and personal development are valued and encouraged? Check out our job openings.

Data Model Friday Qlik Test Prep Script Solution

Hoe kunnen we je ondersteunen?

Barry beschikt over meer dan 20 jaar ervaring als architect, developer, trainer en auteur op het gebied van Data & Analytics. Hij is bereid om je te helpen met al je vragen.