---
# System prepended metadata

title: Untitled

---

![image.png](https://hackmd.io/_uploads/SkGBiLDQT.png)

![image.png](https://hackmd.io/_uploads/HkyCsLvXp.png)

![image.png](https://hackmd.io/_uploads/H1oj6IPQ6.png)


```


===== test_a database=====
---- struct serial ----
schema: test_a
col: %pageid%, *
----

===== test_b database =====
---- struct serial ----
schema: test_b
col: %pageid%, *
----

===== test_a, test_b vertical join=====

<code>
---- struct table ----
schema: test_a, test_b
col: %pageid%, *
----
</code>
==== Output ====
---- struct table ----
schema: test_a, test_b
col: %pageid%, *
----

==== Desired Output ====

  * Entries with identical model values should be merged
  * Entries with different model values should be appended to the end, leaving empty cell untouched

^ Page                   ^ model ^ value a ^ value b ^ value c ^ value d ^
| playground:struct_test | a     | 1       | 10      | 5       | 50      |
| playground:struct_test | b     | 2       | 20      | 6       | 60      |
| playground:struct_test | c     | null    | null    | 3       | 30      |
| playground:struct_test | d     | null    | null    | 4       | 40      |


===== test_a, test_b horizontal join=====
<code>
---- struct table ----
schema: test_a, test_b
col: %pageid%, test_a.model, test_b.model, test_a.value a, test_b.value c
headers: "Page ID", "test_a.model", "test_b.model"
filter: <(can it be achieved via filter?)>

----
</code>
==== Output ====
---- struct table ----
schema: test_a, test_b
col: %pageid%, test_a.model, test_b.model, test_a.value a, test_b.value c
headers: "Page ID", "test_a.model", "test_b.model"

----

==== Desired Output ====

  * Filter the output so that only entries with test_a.model == test_b.model are selected

^ Page                   ^ model ^ model ^ value a ^ value c ^
| playground:struct_test | a     | a     | 1       | 5       |
| playground:struct_test | b     | b     | 2       | 6       |

```

![image.png](https://hackmd.io/_uploads/HkyCsLvXp.png)