我有以下两个表..
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左连接中列出的id应该被计算和显示。如果text2不是Null,则必须将数据计数为1。但是如果text2为空或null,则将text1数据计数为1。结果应该是这样的。
如果我说where text1 or text2 == banana,我必须得到如下结果
name count
banana 1或者,在橙色的情况下..
name count
orange 2我该如何做到这一点?需要帮助吗?
发布于 2019-01-10 07:31:13
此查询应执行您想要的操作:
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 1https://stackoverflow.com/questions/54119490
复制相似问题