两个子查询的MYSQL组没有重复行

时间:2017-05-23 17:50:40

标签: mysql

如何避免在以下查询中重复结果?

示例表结构:

ord_order_number | ord_date   | ord_status | ord_from
----------------------------------------------------
          1      | 2017-01-01 |    2       | Admin Side 
          2      | 2017-02-02 |    3       | Client Side

从5个月(当月,5月)开始的所有月份都会有订单

以下是查询:

SELECT t1.*, t2.*
    from 
        (select count(ord_order_number) as admin, ord_date
         FROM `order_summary`
         where ord_date > '2017-01-01 00:00:00' 
         and ord_from = 'Admin Side' 
         group by month(ord_date)
       ) t1,
       (select count(ord_order_number) as client, ord_date
        FROM `order_summary`
        where ord_date > '2017-01-01 00:00:00' 
        and ord_from = 'Client Side'
        group by month(ord_date)
       )t2

这将产生25个4列圆柱。

T1别名将生成从2017-01到2017年结束的每个月的计数。然后每行将从2017-01等开始重复......

而t2别名将每月重复5次。

我希望每个月只出现一次。

当前查询的示例结果:

(correct)admin |   ord_date  |  client |   ord_date (this column repeats each date 5 times)
       --------------------------------------------
           22  |  2017-01-01 |   77    | 2017-01-01
           32  |  2017-02-01 |   77    | 2017-01-01
           43  |  2017-03-01 |   77    | 2017-01-01

这是预期结果的一个例子

admin |   ord_date  |  client |   ord_date
--------------------------------------------
  22  |  2017-01-01 |   77    | 2017-01-01
  32  |  2017-02-01 |   21    | 2017-02-01
  43  |  2017-03-01 |   100   | 2017-03-01

1 个答案:

答案 0 :(得分:2)

使用CASE在select中移动条件。您可以在select中再次添加ord_date但对我来说看起来很奇怪。

<label *ngFor="let item of items">
    <input type="radio" formControlName="options" [value]="item">
    {{item}}
</label>`