数据库:
table1 schema: name=q_values; columns= id, name;
table2 schema: name=signup_protect; columns= first_name, last_name, uid;
table3 schema: name=user_result; columns= uid, value_ids;
table1 data: [1, forest], [2, mountains]
table2 data: [test, test, 123]
table 3 data: [123, {1:2}]
我将需要给我这个结果的查询:
test, test, {forest, mountains}
这意味着我在 uid 上使用结果加入注册,并将其替换为value_ids
名称q_value
。
这是我到目前为止所做的,但我只得到逗号分隔值的名字。
SELECT `signup_protect`.`first_name`, `signup_protect`.`last_name`,
(select name from q_values where id in (replace(`user_results`.`value_ids`,':', ',')))
FROM (`signup_protect`) JOIN `user_results` ON `user_results`.`uid` = `signup_protect`.`uid`
我用
(select name from q_values where id in (replace(`user_results`.`value_ids`,':', ',')))
用逗号替换字符串上的冒号,以便将它们视为数组。