我有两张table:一张。问题表包括:问题id,日期,更多数据2。连接表:连接id、问题id、连接日期、更多数据
我有以下联接表question\u id,question\u date,connection\u id,connection\u date在question\u id上保持联接。因此我有一些连接日期为的行和一些空的行(当没有匹配的连接时)
以下是数据示例:
question_id | question_date | connection_id | connection_date
500 | 28-10-2018 | 7 | 22-12-2018
501 | 29-10-2018 | NULL | NULL
505 | 01-11-2018 | 8 | 10-12-2018
506 | 05-11-2018 | 9 | 02-12-2018
507 | 07-12-2018 | NULL | NULL
我需要将结果表按连接日期和问题日期这两个值中的较大值排序,这样结果将是:
question_id | question_date | connection_id | connection_date
500 | 28-10-2018 | 7 | 22-12-2018
505 | 01-11-2018 | 8 | 10-12-2018
507 | 07-12-2018 | NULL | NULL
506 | 05-11-2018 | 9 | 02-12-2018
501 | 29-10-2018 | NULL | NULL
我如何通过单独使用mysql来实现这一点?
1条答案
按热度按时间ny6fqffe1#
排序方式
GREATEST
:来解释原因
COALESCE
正在使用,以防connection_date
是NULL
,我们忽略它,只使用question_date
. 这个答案假设question_date
永远不会NULL
.根据@strawberry的评论,如果您将日期存储为文本,那么我们将不得不额外致电
STR_TO_DATE
:请避免将日期存储为文本,而是使用适当的日期列。