<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 选择不存在的数据

        时间:2023-10-08
          • <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 选择不存在的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:MySQL IN 和 LIKE 下一篇:为什么SqlServer select语句会选择匹配的行和匹配并带有尾随空格的行

                  相关文章

                    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>