1
我有一个查询,除了从与帖子相关的评论中获取最大日期之外,它运行良好。MySQL一对多子查询max UNIX_TIMESTAMP()从日期
那么什么即时试图做的是:
- 关系:1员额许多评论
- 获取的最新评论日期“为UNIX_TIMESTAMP()()每个岗位使用最大
- 排序整个查询由“最新的发布日期”或“最新的评论日期”组成。因此,按照每行的“最新发布日期”或“最新评论日期”进行排序。
- 因此,最上面的记录可能是最新的帖子,或者如果帖子有评论,那么后面的任何帖子都会出现在最上面。
任何帮助将不胜感激。
查询,如果没有得到最大最新评论日期和排序方法:最新
SELECT DISTINCT wallposts.p_id,wallposts.type,wallposts.value,wallposts.media,wallposts.youtube,wallposts.post_type,wallposts.tagedpersons,wallposts.title AS thetitle,wallposts.url,wallposts.description,wallposts.cur_image,wallposts.uip,wallposts.likes,wallposts.userid,wallposts.posted_by,wallposts.post as postdata,wallusers.*, UNIX_TIMESTAMP() - wallposts.date_created AS TimeSpent,wallposts.date_created,wallposts.course
FROM wallposts,wallusers
where (
wallposts.userid =4276 OR
wallposts.tagedpersons LIKE '%4276%' OR
EXISTS (SELECT * FROM wallcomments WHERE wallposts.p_id = wallcomments.post_id AND wallcomments.tagedpersons LIKE '%4276%')
)
AND wallusers.mem_id = wallposts.userid
order by wallposts.p_id desc
一个我试图解决这个问题,但失败的作品:
SELECT DISTINCT wallposts.p_id,wallposts.type,wallposts.value,wallposts.media,wallposts.youtube,wallposts.post_type,wallposts.tagedpersons,wallposts.title AS thetitle,wallposts.url,wallposts.description,wallposts.cur_image,wallposts.uip,wallposts.likes,wallposts.userid,wallposts.posted_by,wallposts.post as postdata,wallusers.*, UNIX_TIMESTAMP() - wallposts.date_created AS TimeSpent,wallposts.date_created,wallposts.course
FROM wallposts,wallusers
JOIN wallusers wu on wallposts.userid = wu.mem_id
LEFT JOIN wallcomments wc ON wc.post_id(SELECT date_created as commentdate_created, UNIX_TIMESTAMP() - max(date_created) as latestcomment
FROM wallcomments wc WHERE wallposts.p_id = wc.post_id LIMIT 1)
where (
wallposts.userid = 4276 OR
wallposts.tagedpersons LIKE '%4276%' OR
EXISTS (SELECT * FROM wallcomments WHERE wallposts.p_id = wallcomments.post_id AND wallcomments.tagedpersons LIKE '%4276%')
)
order by greatest(latestcomment, TimeSpent) DESC
你是什么意思左加入似乎被损坏。林不知道我是否甚至需要使用LEFT JOIN。我将你的代码复制并粘贴到phpmyadmin中,这里是错误 - #1064 - 你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第27行'SELECT date_created as commentdate_created'处使用正确的语法。 – Codded
我所做的一切 - 格式化给出的代码以便它可读 – t1gor
好的,并不真正帮助我已经读过它,因为我写了它。为什么不只编辑我的问题并重新格式化。 – Codded