如图所示,一个字段里面存了数量不等的ID,假设这些都是用户id,这张表跟user(id,name )表关联,请问怎么能分别得到对应的name,急求
新人一枚,我的思路是建立第三张表,把两个id对应起来,就是一条数据有两个id,然后查询的时候查一个id就能把里面另一个相关的id全部查询出来了
这样的话应该借助后台的java语言了
从数据表设计角度考虑,应该要有一个映射表来关联这两张表的id关系,而不是通过一个字符串字段来存储。
如果表结构不方便改动,那么就只能用程序语言,取出字段后转换为类似 '1','501' 这样的字符串,再用sql 的in关键字来取数据 select xxx from xxx where id in ('1', '501')
遍历这6条信息 假设其数组名字为list
foreach($list as $k=>$v){
$userlist = select * from user where ID in $v['COPYRECEIVE'];//每条信息所对应的用户信息
foreach($userlist as $k=>$v){
$namestr = implode(',',$v['name']);//将每个单元数组的名字用,连接
}
$v['COPYRECEIVE'] = $namestr; //将连接好的用户名字 放入原数组的COPYRECEIVE下
}
var_dump($list) ; die;//打印 测试
我也觉得最好先取出这个字段,然后遍历联合查询