使用条件获取不同值的MYSQL查询

时间:2014-12-19 12:20:42

标签: mysql if-statement

我正在寻找这样的东西:

  • forum_reply(id,Text,Data,Post,User)
  • forum_post(id,标题,文字,部分,数据,用户)

帖子,用户和部分是外键。

我会显示我所在的部分的所有帖子(我将使用WHERE部分='"。$ _ GET ['部分&#39 ;]。"',我正在使用PHP),按数据排序,但是:

  • 如果该帖子没有得到回复,请使用该帖子的数据发布帖子
  • 如果帖子有超过0个回复,请使用最后回复的数据命令发布

我的最终结果将是一个表格,其中所有帖子行都按照我首先指定的数据排序。像这样:

  • POST 1 | 0回复|发布的数据:19/12/2014 13:00 - >获取帖子的数据
  • POST 2 |回复> 0,最后回复的数据:19/12/2014 14:00 |发布时间:2014年12月19日13:15 - >获取最后回复的数据
  • ECC ..

之后,显示所有如:

  • POST 2(19/12/2014 14:00)
  • POST 1(19/12/2014 13:00)

我真的无法做到;真的需要你的帮助!非常感谢。

1 个答案:

答案 0 :(得分:0)

如果没有回复,您可以使用ifnull功能来使用发布日期。

select *
from forum_post
where Section=@Section
order by ifnull((
    select max(Data)
    from forum_reply
    where Post=forum_post.id
),Data) desc