Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
tvisha
Creator II
Creator II

How to join Multiple tables in Qlik Sense

Hi,

I have 4-5 tables. I want to join each other.

The first three courses, organization, and registrations are linked together by courseid and orgid.

The fourth is linked by hrid

How do I link the table hr_positions and department as they are not linked to tblcourses but linked to human_resources table? 

Qualify*;

tblCourses:
LOAD "COURSE_ID" as CourseId,
    DESCRIPTION,   
    "ORG_ID" as OrgId,

SQL SELECT  *
FROM COURSES
 where COURSE_TYPE='W';

left join (tblCourses)
LOAD  "ORG_ID" as OrgId,
    "ORG_NAME",

SQL SELECT *
FROM  ORGANISATIONS;

left Join (tblCourses)
LOAD "COURSE_ID" as CourseId,
        "HR_ID" as HRID;

SQL SELECT *
FROM  REGISTRATIONS;

HUMAN_RESOURCES:
left join (tblCourses) 
LOAD "HR_ID" as HRID,

SQL SELECT *
FROM "HUMAN_RESOURCES";
Left join (tblcourses) --- How do I join HRID to above registration table

LOAD "pid" as Pid,
    "hr_id" as HRID;

SQL SELECT *
FROM hr_positions;
left join (tblCourses)

 LOAD "pid" as pid,
Description,

SQL SELECT *
FROM department;
20 Replies
Digvijay_Singh

Can you share complete script, if possible a sample app would help community members to get into the real issue faster.

tvisha
Creator II
Creator II
Author

I even tried this, but it is not working,

 

Table1:

LOAD "HR_ID" as HRID,
    "HR_TYPE",
    SURNAME,
    "FULL_NAME";

SQL SELECT *
FROM  “HUMAN_RESOURCES";   

Inner Join (Table1)

Table2:

LOAD "hr_id" as HRID ,
  "position_id" as PositionId;   

SQL SELECT *
FROM Department;

Inner Join (Table2)

LOAD "POSITION_ID" as PositionId,
    "LEVEL_3" as Department;

SQL SELECT *
FROM "POSITIONS";
tvisha
Creator II
Creator II
Author

okay, I will try to create a dummy data and see

Digvijay_Singh

Try this may be, no need to define table2 :

Inner Join (Table1)

LOAD "hr_id" as HRID ,
  "position_id" as PositionId;   

SQL SELECT *
FROM Department;


Inner Join (Table1)

LOAD "POSITION_ID" as PositionId,
    "LEVEL_3" as Department;

SQL SELECT *
FROM "POSITIONS";

 

tvisha
Creator II
Creator II
Author

Sorry for the delay in replying.

Here is a sample script, which I now created. simple tables with simple data, so now by default Qlik should join, but when I pull it into the table, it does not.

///////////////////////
LOAD department_ID,
department;

[department]:
SELECT *
FROM "TestQuery_Database".dbo.department;

///////////////////////
LOAD HR_ID as [HR_ID],
START_DATE;

[EMPLOYEES_T]:
SELECT *
FROM "TestQuery_Database".dbo."EMPLOYEES_T";

///////////////////////
LOAD HR_ID as [HR_ID],
SURNAME,
FIRST_NAME,
MIDDLE_NAME;

[HUMAN_RESOURCES]:
SELECT *
FROM "TestQuery_Database".dbo."HUMAN_RESOURCES";

///////////////////////
LOAD department_ID,
hr_id as [HR_ID];

[Reference_Dept_Hr]:
SELECT *
FROM "TestQuery_Database".dbo."Reference_Dept_Hr";

 

I am not sure how to attach the app or data.

tvisha
Creator II
Creator II
Author

Looking for an answer from experts please

 

Digvijay_Singh

Can you share your data model image, I am not sure why do you have table name after the load statement, shouldn't it be like this sequence in all the tables - 

//This below table name  should come before the load statement, haven't actually tested the impact of this having in the middle in your script

[department]:    

LOAD department_ID,
department;

SELECT *
FROM "TestQuery_Database".dbo.department;
tvisha
Creator II
Creator II
Author

Sorry, there was some typo, here is the updated one.

 

///////////////////////
[department]:

LOAD department_ID,
department;


SELECT *
FROM "TestQuery_Database".dbo.department;

///////////////////////
[EMPLOYEES_T]:

LOAD HR_ID as [HR_ID],
START_DATE;

SELECT *
FROM "TestQuery_Database".dbo."EMPLOYEES_T";

///////////////////////
[HUMAN_RESOURCES]:

LOAD HR_ID as [HR_ID],
SURNAME,
FIRST_NAME,
MIDDLE_NAME;

SELECT *
FROM "TestQuery_Database".dbo."HUMAN_RESOURCES";

///////////////////////
[Reference_Dept_Hr]:

LOAD department_ID,
hr_id as [HR_ID];

SELECT *
FROM "TestQuery_Database".dbo."Reference_Dept_Hr";
tvisha
Creator II
Creator II
Author

Data Model image. (I have created this sample data model)

Digvijay_Singh

The joining looks okay in your data model view, looks like something is wrong with the keyfield values.

Can you create new field HR_ID1 in the table as shown below, and share the values of it, I want to know why this table ref-dept-hr table values are not associating with the HUMAN_RESOURCES table.

Digvijay_Singh_0-1646843992451.png