Leave out the where clauses. Qlikview joins tables on matching field names. You cannot specify the field names for the join like in SQL.
LOAD distinct Table1.ID as ID resident Table1;
LEFT JOIN (ID_ALL) LOAD Table2.ID as ID resident Table2;
LEFT JOIN (ID_ALL) LOAD Table3.ID as ID resident Table3;
Note, the above statement doesn't actually do anything since you don't load any other fields from Table2 and Table3, so nothing gets joined with Table1. You probably want something like LEFT JOIN (ID_ALL) LOAD *, Table2.ID as ID resident Table2;
Thanks a lot for all the posts:)
This is more interesting to me. Funny is that i always join with where condition^^
And it works...Does QV ignores the condition, when it would join with the same fields?
I changed my script to LEFT JOIN (ID_ALL) LOAD *, Table2.ID as ID resident Table2;
But i dont know if it works because im running out of virtual and/or physical Memory:(
One million Rows seem to be too much to join or is there a way to tell QV do it partly or sth?
Any other Solutions?
Ok, i get it with ApplyMap. This can be executed without running out of virtual and/or physical memory(in this/my case).
This is the Script:
I simplify the names of the ID to ID1^^
Mapping LOAD DISTINCT Table2.ID1,Table2.ID1 as MapID1 resident Table2;
Mapping LOAD DISTINCT Table3.ID1,Table3.ID1 as MapID12 resident Table3;
LOAD DISTINCT ID1 resident Table1;
LOAD *,MapID1 as MapID2,ApplyMap('ID1_Map1',MapID1,null()) resident ID1_DISTINCT;
LOAD *,ApplyMap('ID1_Map2',MapID2,null()) resident ID1_TMP;