不幸的是,我不确定是否有一个特定的名称为我试图写的查询。我的问题是,我创建了两个临时表,其中一个表列出了在ivr或电子邮件中“选择退出”通信的客户列表。
mysql> desc tt_customers;
+------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | MUL | 0 | |
| name | varchar(40) | NO | | NULL | |
+------------------+------------------+------+-----+---------+-------+
mysql> desc tt_opt_outs;
+-----------------------+----------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+----------------------------------------+------+-----+---------+-------+
| customer_id | int(10) unsigned | NO | MUL | NULL | |
| event_type | enum('PRE_PEAK_TIME','POST_PEAK_TIME' | YES | | NULL | |
| notification_channel | enum('EMAIL','IVR') | NO | | NULL | |
+-----------------------+----------------------------------------+------+-----+---------+-------+
不是customer表中的所有客户都将在opt-out表中。选择退出表中的客户可以选择退出电子邮件、ivr或两者,以及任何事件类型。我想用以下列标题创建一个报表 customer_id
, name
, IVR Optout
, Email Optout
,其中ivr和email opt-out列与opt-out无关 event_type
. 我不知道如何构造一个连接/子查询/联合或任何我需要在这里创建确切查询的东西。任何帮助都将不胜感激!
2条答案
按热度按时间4urapxun1#
除了case语句外,还可以使用left-outer连接。
查询(左外联接)
输出:
数据设置:
sql小提琴:http://sqlfiddle.com/#!2017年9月8日
bwleehnv2#
下面是将为您提供所需结果的sql:
您对所需结果的查询: