首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql联接问题

mysql联接问题
EN

Stack Overflow用户
提问于 2011-07-28 02:46:01
回答 1查看 49关注 0票数 0

这可能真的很容易,但我遇到了麻烦。我之前问了一个关于查询的问题(MySql Query help),答案是创建另一个表,并将其与我当前的查询连接起来。因此,我创建了一个临时表,并将其与我的查询连接在一起,但得到了相同的结果。

概述:我有一个dates表,其中包含过去30天的日期,每个条目的值都为0

代码语言:javascript
复制
+------+------------+
| Zero | Date       |
+------+------------+
|    0 | 2011-07-27 |
|    0 | 2011-07-26 |
|    0 | 2011-07-25 |
|    0 | 2011-07-24 |
|    0 | 2011-07-23 |
|    0 | 2011-07-22 |
...etc

我正在尝试将这个表与一个查询连接起来,我做了另一个表来获得这些结果:

代码语言:javascript
复制
+-------------------+-----------+
| Past-Month-Builds | Month-Day |
+-------------------+-----------+
|                53 | 6-27      |
|               103 | 6-28      |
|                91 | 6-29      |
|                70 | 6-30      |
|                76 | 7-1       |
|                 8 | 7-2       |
|                77 | 7-5       |
|               111 | 7-6       |
|                67 | 7-7       |
|                70 | 7-8       |
|                 2 | 7-9       |
|                 3 | 7-10      |
|                87 | 7-11      |
|                53 | 7-12      |
|                49 | 7-13      |
|                84 | 7-14      |
|               126 | 7-15      |
|                 3 | 7-16      |
|                 8 | 7-17      |
|                98 | 7-18      |
|               114 | 7-19      |
|               841 | 7-20      |
|               206 | 7-21      |
|               738 | 7-22      |
|                 2 | 7-23      |
|                65 | 7-25      |
|                39 | 7-26      |
|                21 | 7-27      |
+-------------------+-----------+

请注意,有缺失的日期,我希望过去一个月的构建数列在当天没有任何构建时显示0。

下面是我尝试使用的查询:

代码语言:javascript
复制
SELECT
    COUNT(id) AS 'Past-Month-Builds',
    CONCAT(MONTH(builds.submittime), '-', DAY(builds.submittime)) as 'Month-Day'
FROM builds
    RIGHT JOIN dates ON DATE(builds.submittime) = dates.Date
WHERE DATE(builds.submittime) >= DATE_SUB(CURDATE(), INTERVAL 30 day)
GROUP BY MONTH(submittime), DAY(submittime);

有点迷路了,如果能帮上忙就太感谢了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-28 02:48:34

更改查询,使dates成为主表,并使用指向builds表的left outer join

另外,将与builds表相关的任何条件从WHERE子句移到ON子句,因为这是可选表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6849555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档