mysql合并3个查询的输出

6qfn3psc  于 2021-06-19  发布在  Mysql
关注(0)|答案(5)|浏览(344)

我有3个查询,它们查询同一个名为 campaign -
从a.mm\u id为空的活动中选择a.org\u名称
返回失败的活动
从活动a中选择一个.org\u名称,其中a.mm\u id为空,a.active='y'
返回活动活动
从活动a中选择一个.org\u名称,其中a.mm\u id为空,a.active='n'和a.xaction='y'
返回X活动
我需要把这三个问题合并成一个问题。
我希望输出像这样 `+

i7uq4tfw

i7uq4tfw1#

+--------+--------+---------+ | Pepsi | yes | no | yes | | Xerox | no | no | yes | +

gk7wooem

gk7wooem2#

SELECT a.org_name,
       IF(a.mm_id IS NULL,'yes','no') AS failed,
       IF(a.mm_id IS NULL AND a.active = 'Y', 'yes', 'no') AS active,
       IF(a.mm_id IS NULL AND a.xaction = 'Y','yes','no') AS xaction
FROM campaign a
``` `IF` (是比较函数)和 `WHEN THEN` 你的问题有解决办法吗
91zkwejq

91zkwejq3#

+--------+--------+---------+`

euoag5mw

euoag5mw4#

+--------+--------+---------+ | org_name | failed | active | xaction | +

brtdzjyr

brtdzjyr5#

为您在问题中指定的确切条件生成结果的查询如下所示:

SELECT a.org_name,
       CASE WHEN a.mm_id IS NULL THEN 'yes' ELSE 'no' END AS failed,
       CASE WHEN a.mm_id IS NULL AND a.active = 'Y' THEN 'yes' ELSE 'no' END AS active,
       CASE WHEN a.mm_id IS NULL AND a.xaction = 'Y' THEN 'yes' ELSE 'no' END AS xaction
FROM campaign a

你只需替换每个 CASE 按要求表达。

相关问题