我有以下查询来从两个不同的表中获取消息和图像。 这里一条消息可以有多个图像
为此,我编写了以下查询,该查询运行正常并显示以下结果
select msg.messageid, msg.message, msg.sentby, msg.adddate,
p_i.image_id ,p_i.small_pic_path
from user_messages as msg
LEFT JOIN post_images as p_i
on msg.messageid=p_i.messageid
where msg.messageid='zpx1btrpvpa1360154523078'
order by msg.adddate desc
输出为
messageid message sentby adddate image_id small_pic_path
1 abc aa 12/2/12 6 /sdf/sdf
1 abc aa 12/2/12 7 /asdf/df
1 abc aa 12/2/12 8 /cxd/sxc
1 abc aa 12/2/12 9 /zz/szz
这里由adddate发送的messageid消息在jsp页面中重复显示 总共显示 4 条不同的消息。
但我想显示 4 个 imageid 和small_pic_path(基于消息 ID)以及相关消息详细信息
我想显示为
1) 留言
发送者
该消息的messag id的所有small_pic_path
1) 留言
发送者
该消息的messag id的所有small_pic_path
2) 留言
发送者
该消息的messag id的所有small_pic_path
3) 留言
发送者
该消息的messag id的所有small_pic_path
最佳答案
在没有真正理解您的要求的情况下,您写道:
But I want to show 4 imageid and small_pic_path with a single message detail
您想如何显示这些记录?
假设您的意思是在同一行,然后考虑使用GROUP_CONCAT
:
SELECT msg.messageid, msg.message, msg.sentby, msg.adddate,
group_concat(p_i.image_id separator ';') imageids,
group_concat(p_i.small_pic_path separator ';') picpaths
FROM ...
这是一个SQL Fiddle展示结果。
如果您想以不同的方式显示结果,您很可能应该通过 UI 进行处理。
祝你好运。
关于mysql - 如何从左连接中删除冗余字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14742177/