DROP TABLE IF EXISTS a; DROP TABLE IF EXISTS b; DROP TABLE IF EXISTS id1; DROP TABLE IF EXISTS id2; CREATE TABLE a(`id1` UInt32, `id2` UInt32, `valA` UInt32) ENGINE = TinyLog; CREATE TABLE id1(`id1` UInt32, `val1` UInt8) ENGINE = Join(ANY, LEFT, id1); CREATE TABLE id2(`id2` UInt32, `val2` UInt8) ENGINE = Join(ANY, LEFT, id2); INSERT INTO a VALUES (1,1,1)(2,2,2)(3,3,3); INSERT INTO id1 VALUES (1,1)(2,2)(3,3); INSERT INTO id2 VALUES (1,1)(2,2)(3,3); SELECT * from (SELECT * FROM a ANY LEFT OUTER JOIN id1 USING id1) js1 ANY LEFT OUTER JOIN id2 USING id2; create view b as (SELECT * from (SELECT * FROM a ANY LEFT OUTER JOIN id1 USING id1) js1 ANY LEFT OUTER JOIN id2 USING id2); SELECT '-'; SELECT * FROM b; DROP TABLE a; DROP TABLE b; DROP TABLE id1; DROP TABLE id2;