mysql连接和案例问题

eni9jsuy  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(250)

我有下面两张table。。

table-1
|id| text1  | text2  |
----------------------
|1 | orange | banana |
|2 | banana | NULL   |
|3 | orange | NULL   |
|4 | papaya | orange |
|5 | papaya | papaya |
|6 | papaya | papaya |
|7 | mango| NULL   |

table-2
|id| id-table-1 |
-----------
|1 |   1  |
|2 |   3  |
|3 |   4  |
|3 |   6  |
|3 |   7  |

我想要的是,只计算并显示表2 left join中列出的id。如果text2不为空,则必须将数据计为1。但是如果text2为空或null,那么将text1数据计数为1。结果应该是这样的。
如果我说其中text1或text2==banana,我必须得到如下结果

name   count
banana  1

或者,如果是橙色的话。。

name   count
orange  2

我如何做到这一点?需要帮忙吗?

kx7yvsdv

kx7yvsdv1#

此查询应满足您的要求:

SELECT COALESCE(t1.text2, t1.text1) AS name,
       COUNT(*) AS count
FROM `table-2` t2
LEFT JOIN `table-1` t1 ON t1.id = t2.`id-table-1`
GROUP BY name

输出:

name    count
banana  1
mango   1
orange  2
papaya  1

在dbfiddle上演示

相关问题