1.问题:我一直不清楚一个SQL算出一个特定结果的写法,想向大神请教
2.代码:
SELECT tb.*,tbc.`comment`
from blog_tinyblog AS tb,blog_tbcomment AS tbc
where tb.user_id=tbc.user_id AND
tb.num=tbc.now_num
group by tbc.num_tiny_blog
我写的SQL是这样的,结果如图:
可这并不是我想要的结果,我希望去除重复,将comment存储为一个数组,成为只有一条结果的形式,请大神赤脚。也许可能会说用 distinct,但是不行
目的:我想写个微博评论系统 【现在是想显示出每条微博对应的评论】
大部分ORM一般有两种方式解决此类问题:
采用的
Lazy Load
方式,其实原理很简单:就是取两次,第一次取blog,第二次取blog对应的comment,只不过第二次取的操作延迟执行。第二种就是题主这种一次查询的方式,只是ORM会根据查询的结果映射成你想要的那种形式(单个Blog对象中包含对应的Comment列表)。
所以综上,如果题主正在使用一种ORM工具,一般都包含这两种方式的处理;如果没有使用任何ORM,那题主需要自己实现一个对应的算法(其实就是一个类似reduce的算法)。