by shigemk2

当面は技術的なことしか書かない

memo Presto LEFT OUTER JOIN

LEFT OUTER JOINのON条件で複数マッチしたときは、掛け算になる。下のようなクエリがあったとして、idで外部結合しようとしているけど、idがそれぞれ2つあるので、id=1については 2 * 2 で4つの組み合わせができる。

SELECT *
FROM (
SELECT id,
       name,
       age
FROM (
      VALUES (1, 'alpha', 10),
             (1, 'alpha', 10),
             (2, 'beta', 20)) AS t (id, name, age)) a
LEFT OUTER JOIN (
SELECT DISTINCT id,
       name,
       country
FROM (
      VALUES (1, 'alpha', 'JP'),
             (1, 'alpha', 'JP'),
             (2, 'beta', 'US')) AS t (id, name, country)) b ON a.id = b.id