我有一个类似以下结构的表:
| id | data |
| 1 | {"products":[1,2,3]} |
| 2 | {"products":[2,5,7]} |
| 3 | {"products":[2,4,1]} |
| 4 | {"products":[7,8]} |
| 5 | {"products":[2,8]} |
我想将此表加入到查询中,并使用产品 JSON 中的 id 来加入 3. 表。3.表称为产品。
我设法编写了查询,但我一直收到这条消息:
Error Code: 1210. Incorrect arguments to JSON_TABLE
不幸的是,我无法更改结构,我必须从 JSON 字段中获取这些 Id。
到目前为止,我有以下查询:
select pd.`id` pd.parameter_condition->>'$.products' as `product_id`
from `shop`.`ordering` o
inner join `shop`.`ordered_product` op on (op.`order_id` = o.`id`)
-- [... a lot more joins]
inner join `shop`.`price_dependency` pd on (pd.`attribute_value_id` = av.`id`)
where o.type_id = 4
这给出了以下结果:
| id | product_id` |
| 2 |["25"] |
| 3 |["10", "12"] |
| 5 |["10", "15", "22"]|
但我最终想要的是这样的:
| id | product_id` |
| 2 | 25 |
| 3 | 10 |
| 3 | 12 |
| 5 | 10 |
| 5 | 15 |
| 5 | 22 |