ThinkPHP5 MySQL 能把第二张表的数据赋值给第一张表的某个字段吗? 200

图1是表1,图2是表2.表1中的advantage对应表2的type,以及图2的with_id对应表1的主键ID,也就是说,最终获取出来的数据是这种格式:array("i... 图1是表1,图2是表2.表1中的 advantage 对应表2的 type ,以及图2的 with_id 对应表1的主键ID,也就是说,最终获取出来的数据是这种格式:array(  "id"     =>   1,  "title"    =>   "string",  "content"   =>  "string",  "advantage"   =>  array(6),  "features"   =>  array(4),  "process"   =>  array(7));用join写获取出来的数据就搞不懂该怎么去遍历了。$res = ServiceList::alias("s")    -> field("s.*")    -> join("service_in_arr si", "s.id = si.with_id")    -> field("si.title as title1, si.content as content1")    -> select();这种写出来的数据即图3,表1仅1条数据,表2的数据仅是表1某字段的一个数据集。若我需要按照第一种格式去获取数据,这种该怎么写?请大神莅临指导,非常感谢!
表1获取的格式
<code>
array(  
"id"     =>   1,
"title"    =>   "string",
"content"   =>  "string",
"advantage"   =>  "advantage",
"features"   =>  "features",
"process"   =>  "process"
);
</code>
表2获取的格式
<code>
array(  
"id"     =>   1,
"with_id"  => "string",
"type" => "string",
"title"    =>   "string",
);
</code>
需要的格式
<code>
array(  
"id"     =>   1,
"title"    =>   "string",
"content"   =>  "string",
"advantage"   =>  array(6),
"features"   =>  array(4),
"process"   =>  array(7)
);
</code>
展开
 我来答
百度网友48429e1
2018-09-14 · TA获得超过336个赞
知道小有建树答主
回答量:340
采纳率:73%
帮助的人:134万
展开全部
SELECT
  t1.id,
  t1.title,
  t2.type,
  t2.title,
  t2.content
FROM table1 t1
  LEFT JOIN (SELECT
               with_id,
               type,
               group_concat(title)   as title,
               group_concat(content) as content
             from table2
             group by with_id, type) t2
    ON t1.id = t2.with_id

有几问题没看明白:

  1. 第一张表里的 "advantage“, "features", ”process" 这三个字段有什么用?

  2. 为什么要一次把所有数数查出来呢?不能在需要的时候再查第二张表吗?

追问
有用也没用,只是想着看清来一目了然,因为这个原始数据就是一个页面的,需要一次性取出来,本身advantage/features/process这三个字段是一个数组,也就是整个data是一二维数组。
追答
上面的sql是将每二张表的数据拼接成字符串。
也可以在遍历第一张的时候,去查询对应的第二张表的数据。
或者从第一张表的查询结果中提出id, 作为条件去查第二张表,再将两次的结果关联起来。
yangshaobono1
2018-09-14 · TA获得超过138个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:126万
展开全部
如果你实在搞不懂的话,可以先不考虑联接查询,分两次查询,在遍历第一个查询列表中实现数据绑定,先达到目的再进行代码优化为上上选
追问
目前就是这样的,两次查询,根据类型重构数组,只是这样一对代码,看起来极不美观。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月掩门7
2018-09-14 · TA获得超过582个赞
知道小有建树答主
回答量:2890
采纳率:7%
帮助的人:348万
展开全部
重新拔插耳机进行对比尝试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式