2 knuth chen knuth_chen 于 2016.03.27 13:25 提问

求正确MYSQL的写法,请大神赤脚 1C

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,但是不行

图片说明
现在的情况是这样,可是我发的微博不止3条,有十几条,其他几条因为没有评论就不显示出来了,我不知道怎么写啊,我想显示所有的微博和对应的评论

4个回答

wangzi_123456
wangzi_123456   2016.03.27 14:56

1.问题:我一直不清楚一个SQL算出一个特定结果的写法,想向大神请教

2.代码:
SELECT tb.*,group_concat(distinct 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 tb.*

knuth_chen
knuth_chen 你这样写的话,也是只有一条结果呢
一年多之前 回复
luochoudan
luochoudan   Ds   Rxr 2016.03.27 15:13

select distinct comment form ...
这样肯定能去除重复,但要存成一个数组的话,基础的sql语句,没见过有这功能的。

knuth_chen
knuth_chen 你好,谢谢你的回答,用GROUP_CONCAT就可以了,现在问题是我要是加了GROUP_CONCAT,那就永远只有一条结果了,我在写微博评论系统,第一次写,不太懂
一年多之前 回复
u012921592
u012921592   2016.03.28 09:44

加了group_concat是可以的。
SELECT tb.*,GROUP_CONCAT(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 #这个条件很重要

关键在于你用哪些字段进行分组,
图片说明

u012921592
u012921592 回复亚瑟0120: 你试一下UNION ALL呢?后面接所有没有评论的用户
一年多之前 回复
knuth_chen
knuth_chen 你好,我现在的情况是能显示所有微博对应的评论了,但是那些没有评论的微博就显示不出来,请教下怎么写
一年多之前 回复
knuth_chen
knuth_chen   2016.03.28 22:42

> 图片说明
我是搂搂,我现在的情况是能显示所有微博对应的评论了,但是那些没有评论的微博就显示不出来,请教下怎么写

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!