【发布时间】:2014-09-12 07:19:00
【问题描述】:
我有四张桌子
发布--用户--图片--评论
我想检索有关所有帖子、发布帖子的用户、与其关联的图像(每个帖子只有一个图像)以及与每个给定帖子关联的(列表/数组)cmets 的信息。
这就是我所拥有的:
SELECT *
FROM post
LEFT JOIN image
ON post.image_id=image.id
LEFT JOIN user
ON user.id=post.user_id
LEFT JOIN comment
ON comment.post_id =post.id
这几乎是可行的,除了每个帖子记录对于它的许多 cmets 中的每一个都重复。如何获得包含所有 cmets 的记录?
【问题讨论】:
-
您会想使用 Group_concat,但在不知道字段名称的情况下很难举个例子
-
忍受重复。他们很好。
-
只是为了澄清......您目前有一个 select 语句,它为一个帖子返回几个 cmets,而不是让每个帖子/评论都是它自己的行,您更愿意拥有这个作为一条线,然后是一组cmets?如果是这样……为什么?
-
这比你想象的还要糟糕。将针对相关图像、用户和评论的每个不同组合重复此操作。