表A,字段: pay_type_fk,类型:json,示例数据: 1,2,4表B,字段: id类型: bigint示例数据:主键
我使用的SQL:
SELECT
pay_payment_type.id,
pay_payment_type.pay_name,
pay_payment_type.configuration,
pay_payment_type.pay_function_name,
GROUP_CONCAT( pay_type.MODE )
FROM
pay_payment_type
LEFT JOIN pay_type ON pay_type.id = CAST( JSON_EXTRACT( pay_payment_type.pay_type_fk, '$[0]' ) AS UNSIGNED )
GROUP BY
pay_payment_type.id对于类型表中的第一条记录,只有pay可以为found_,我想我们可以用group_ CONCAT来查询所有这些记录
发布于 2020-11-09 18:17:03
如果我没听错,你可以在JSON_CONTAINS()上使用join
select
ppt.id,
ppt.pay_name,
ppt.configuration,
ppt.pay_function_name,
group_concat(pt.mode) as pay_type_modes
from pay_payment_type ppt
left join pay_type pt on json_contains(ppt.pay_type_fk, cast(pt.id as char))
group by ppt.id也就是说,一个更好的选择是修复你的设计。您应该使用单独的桥接表来表示这种多对多关系,而不是使用JSON数组来存储多个依赖键,每个值都在单独的行中。
https://stackoverflow.com/questions/64749618
复制相似问题