mysql - 如何让最小和最大日期更小等于今天mysql

标签 mysql

我需要有关 mysql 语句的帮助。 我有 2 个表,一个包含事件详细信息,另一个包含事件日期。

我需要显示今天或之后结束的所有事件日期。

我有一个具有这些日期的事件: 29/03/2016 30/03/2016 2016/03/31

我试过这个查询:

SELECT a.event_id, event_name, event_location, event_desc,
MIN(a.event_date) AS from_date, MAX(a.event_date) AS to_date
FROM event_time a
LEFT JOIN event_time b
ON b.event_id = a.event_id
JOIN events c
ON a.event_id = c.event_id
WHERE b.event_date <= NOW()
GROUP BY a.event_id

但在 from_date 字段中我只得到 31/03/2016。

任何人都可以帮助构建正确的陈述来满足我的需要吗?

谢谢

最佳答案

好吧,你的问题是缺少一些信息,所以如果我理解正确的话,你不需要两次加入 event_times:

SELECT a.event_id, event_name, event_location, event_desc,
       MIN(a.event_date) AS from_date, MAX(a.event_date) AS to_date
FROM event_time a
JOIN events c
 ON a.event_id = c.event_id
WHERE a.event_date >= NOW()
GROUP BY a.event_id

我已将您的 where 子句更改为

a.event_date >= NOW()

既然你说你不想约会大于或等于今天的日期,但现在我在看你的主题,我看到你写的是相反的,所以如果你不想更小,把它调过来。

此外,一般来说,您是 LEFT JOINING 到 event_time b,并且您的 where 子句中有:

WHERE b.event_date <= NOW()

这会自动将连接变成内部连接,right 表上的过滤器应该只在 ON 子句中。在你的情况下:

LEFT JOIN event_time b
 ON b.event_id = a.event_id AND
    b.event_date <= NOW()

关于mysql - 如何让最小和最大日期更小等于今天mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36327179/

相关文章:

php - 如何在查询语句中格式化日期?

mysql - 如何删除 mysql 文本字段中的单引号 ' 字符?

php - 间歇性的 MySQL 服务器已经消失错误

mysql - VBA MS Word 内容控制困惑的顺序

php - 远程连接 WAMP MySQL 无法连接

python - Django user.save() 在列 'is_superuser' 上失败不能为空

php - 在 PHP 和 MySQL 中设置时区

php - 使用php将多个文件上传到服务器而不是将所有文件上传到服务器

MySQL 每个键获取 n 行

使用for循环的递增日期的php代码在更新条件下不起作用