LoginSignup
0
0

QlikSenseのJOINの見え方

Last updated at Posted at 2023-11-30

QlikSenseでのJOINが、SQLでのJOINと若干挙動が違うのと、
データモデルビューワで見ても正しいかわからなかったので、
メモとして残します。

以下のようなテーブルを作って試していきます。

t1

USER_ID NAME
1 A
2 B
3 C
4 D

t2

USER_ID CASH
1 123
2 453
3 987
5 1023

まずは単純なLOAD (JOINを明記しない)

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
ER図っぽい感じになって、KEYがUSER_IDなのもわかります。
image.png

結果
image.png

OUTER JOINっぽい挙動をしました。

LEFT JOIN LOAD

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
LEFT JOIN LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
一個にくっついてしまいました。
image.png

プレビューはこんな感じ。
image.png
ちゃんと結果はLEFT JOINでした。

RIGHT JOIN LOAD

LEFTを見た時点で結果はお察しですが、全部確認していきます。

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
RIGHT JOIN LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
image.png

プレビューはこんな感じ。
image.png

INNER JOIN LOAD

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
INNER JOIN LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方

image.png

プレビューはこんな感じ。
image.png

OUTER JOIN LOAD

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
OUTER JOIN LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
image.png

プレビューはこんな感じ。
image.png

データモデルビューワがあまり役に立たないですね。。。

CROSS JOIN LOAD は存在しない

存在しないけど、JOIN_KEYがなければ勝手にCROSS JOIN っぽくなります

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
LOAD
    USER_ID AS USER_ID1, //名前が違うとJOIN_KEYにならないので、名前を変えます。
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
image.png

結果
image.png

LOADするテーブル数が増えると、データモデルビューワで1個にしちゃうこの挙動はつらい。。。

今度はデータマネージャを試してみたいと思います。


追記 JOIN LOAD

LEFT/RIGHT/OUTER/INNERを書いてないJOINの存在を忘れていました。。。

test
t1:
LOAD
    USER_ID,
    NAME
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet1);

t2:
JOIN LOAD
    USER_ID,
    CASH
FROM [lib://AttachedFiles/test.xlsx]
(ooxml, embedded labels, table is Sheet2);

データモデルビューワの見え方
image.png

プレビューはこんな感じ。
image.png

OUTER JOINっぽい挙動が多いですね。
データがなくなっちゃうよりは多い方がいいっていうスタンスなんでしょうかね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0