假设我有一桌人:
+----+------+
| id | name |
+----+------+
| 1 | John |
| 2 | Mary |
| 3 | Jane |
+----+------+
字符串
以及用于各种类型的服装的各种table,例如一table鞋子
+----+----------+--------------------+---------+
| id | brand | name | type |
+----+----------+--------------------+---------+
| 1 | Converse | High tops | sneaker |
| 2 | Clarks | Tilden cap Oxfords | dress |
| 3 | Nike | Air Zoom | running |
+----+----------+--------------------+---------+
型
然后对于每种服装类型,我有一个连接表,记录每个人拥有的那种类型的物品:
+--------+---------+
| person | shirt |
+--------+---------+
| 1 | 3 |
| 1 | 4 |
| 2 | 2 |
...
型
我需要一个查询,将这些表编译成一个返回值,如下所示:
+----+------+--------------------+
| id | name | clothing items |
+----+------+--------------------+
| 1 | John | [JSON in a string] |
| 2 | Mary | [JSON in a string] |
| 3 | Jane | [JSON in a string] |
+----+------+--------------------+
型
其中每行的[JSON in a string]
应该如下所示:
[
{"type":"shirt","id":3},
{"type":"shirt","id":4},
{"type":"pant","id":2},
{"type":"shoe","id":5}
]
型
如何在SQLITE中构造这个查询?如果需要,我可以很容易地定义自己的自定义聚合函数。
2条答案
按热度按时间vfwfrxfs1#
想明白了
字符串
有关演示,请参见dbfiddle
jrcvhitl2#
您可以通过使用此查询获得结果。首先,我测试了第一个json对象,然后将它们从每个用户ID和名称数组中分组到一个数组中:
字符串