<tfoot id='nWo0G'></tfoot>

    1. <i id='nWo0G'><tr id='nWo0G'><dt id='nWo0G'><q id='nWo0G'><span id='nWo0G'><b id='nWo0G'><form id='nWo0G'><ins id='nWo0G'></ins><ul id='nWo0G'></ul><sub id='nWo0G'></sub></form><legend id='nWo0G'></legend><bdo id='nWo0G'><pre id='nWo0G'><center id='nWo0G'></center></pre></bdo></b><th id='nWo0G'></th></span></q></dt></tr></i><div id='nWo0G'><tfoot id='nWo0G'></tfoot><dl id='nWo0G'><fieldset id='nWo0G'></fieldset></dl></div>

      <small id='nWo0G'></small><noframes id='nWo0G'>

        <bdo id='nWo0G'></bdo><ul id='nWo0G'></ul>

      1. <legend id='nWo0G'><style id='nWo0G'><dir id='nWo0G'><q id='nWo0G'></q></dir></style></legend>

      2. 使用 MySQL 选择不存在的数据

        Selecting Non-existent Data With MySQL(使用 MySQL 选择不存在的数据)
          • <bdo id='Vq8je'></bdo><ul id='Vq8je'></ul>

            <legend id='Vq8je'><style id='Vq8je'><dir id='Vq8je'><q id='Vq8je'></q></dir></style></legend>

            <i id='Vq8je'><tr id='Vq8je'><dt id='Vq8je'><q id='Vq8je'><span id='Vq8je'><b id='Vq8je'><form id='Vq8je'><ins id='Vq8je'></ins><ul id='Vq8je'></ul><sub id='Vq8je'></sub></form><legend id='Vq8je'></legend><bdo id='Vq8je'><pre id='Vq8je'><center id='Vq8je'></center></pre></bdo></b><th id='Vq8je'></th></span></q></dt></tr></i><div id='Vq8je'><tfoot id='Vq8je'></tfoot><dl id='Vq8je'><fieldset id='Vq8je'></fieldset></dl></div>
            1. <small id='Vq8je'></small><noframes id='Vq8je'>

              <tfoot id='Vq8je'></tfoot>
                <tbody id='Vq8je'></tbody>

                  本文介绍了使用 MySQL 选择不存在的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试选择两个日期范围之间的数据.但是,并非每天都会插入所有数据.以下是表格示例:

                  I'm trying to select data between two date range. However not all data are being inserted daily. Below is sample of the table:

                  mysql> SELECT * FROM attendance;
                  +------------+-------+
                  | date       | total |
                  +------------+-------+
                  | 2012-07-02 |   100 |
                  | 2012-07-04 |    70 |
                  | 2012-07-05 |    78 |
                  +------------+-------+
                  3 rows in set (0.00 sec)
                  

                  场景是我想从 2012-07-02 到 2012-07-04 获得总出勤率.根据上面的数据我会得到

                  The scenario is I want to get total of attendance from 2012-07-02 till 2012-07-04. Based on the data above I will get

                  mysql> SELECT * FROM attendance WHERE date BETWEEN '2012-07-02' AND '2012-07-04';
                  +------------+-------+
                  | date       | total |
                  +------------+-------+
                  | 2012-07-02 |   100 |
                  | 2012-07-04 |    70 |
                  +------------+-------+
                  2 rows in set (0.00 sec)
                  

                  但是我的目标是将 2012-07-03 包含在结果中.

                  However my objective is to have 2012-07-03 included in the result.

                  +------------+-------+
                  | date       | total |
                  +------------+-------+
                  | 2012-07-02 |   100 |
                  | 2012-07-03 |     0 |
                  | 2012-07-04 |    70 |
                  +------------+-------+
                  

                  这可以通过 MySQL 完成吗?我确实研究了临时表.但是还是无法达到目的.

                  Is this possible to be done through MySQL? I did look into temporary table. But still unable to achieve the objective.

                  推荐答案

                  这是一个简单的解决方案的常见问题.

                  This is a common problem with a simple solution.

                  创建一个常规表,例如 REF_DATE,并将所有日期存储在其中,例如 3 年或您需要的任何时间跨度.

                  Create a regular table, say REF_DATE, and store in it all dates for like 3 years or whatever time span you would need.

                  然后使用这个表左边的一个LEFT OUTER JOIN

                  Then use this table on the left of a LEFT OUTER JOIN

                  SELECT REF.date,IFNULL(A.total,0) as total FROM REF_DATE REF 
                  LEFT OUTER JOIN attendance 
                  ON REF.date=A.date
                  A WHERE REF.date BETWEEN '2012-07-02' AND '2012-07-04';
                  

                  DATE 是 MySQL 中的一个关键字,我在这里使用它是为了便于阅读.使用不同的列名.

                  DATE is a keyword in MySQL, I have used it here for readability. Use a different column name.

                  这篇关于使用 MySQL 选择不存在的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Building a comma separated list?(建立一个逗号分隔的列表?)
                  Errors in SQL Server while importing CSV file despite varchar(MAX) being used for each column(尽管每列都使用了 varchar(MAX),但在导入 CSV 文件时 SQL Server 中出现错误)
                  How to update a record using sequelize for node?(如何使用节点的 sequelize 更新记录?)
                  How to provide a mysql database connection in single file in nodejs(如何在 nodejs 中的单个文件中提供 mysql 数据库连接)
                  Defining a one-to-one relationship in SQL Server(在 SQL Server 中定义一对一关系)
                  Looping Over Result Sets in MySQL(在 MySQL 中循环结果集)

                    1. <i id='VhUKL'><tr id='VhUKL'><dt id='VhUKL'><q id='VhUKL'><span id='VhUKL'><b id='VhUKL'><form id='VhUKL'><ins id='VhUKL'></ins><ul id='VhUKL'></ul><sub id='VhUKL'></sub></form><legend id='VhUKL'></legend><bdo id='VhUKL'><pre id='VhUKL'><center id='VhUKL'></center></pre></bdo></b><th id='VhUKL'></th></span></q></dt></tr></i><div id='VhUKL'><tfoot id='VhUKL'></tfoot><dl id='VhUKL'><fieldset id='VhUKL'></fieldset></dl></div>

                    2. <legend id='VhUKL'><style id='VhUKL'><dir id='VhUKL'><q id='VhUKL'></q></dir></style></legend>

                        <small id='VhUKL'></small><noframes id='VhUKL'>

                          <tfoot id='VhUKL'></tfoot>
                            <bdo id='VhUKL'></bdo><ul id='VhUKL'></ul>
                              <tbody id='VhUKL'></tbody>