MYSQL:计算一个表中的值是否存在于另一个表的多个列中

时间:2017-03-05 22:56:03

标签: mysql left-join multiple-columns

想知道是否有人可以提供协助,

我有一个固定的参考表

tblConfig_qC

----------------
| id | value   |
----------------
| 1  | optionA |
| 2  | optionB |
| 3  | optionC |
| 4  | optionD |
| 5  | optionE |
| 6  | optionF |
| 7  | optionG |
----------------

还有一个tblSubmission表,其中我有3列,用于存储选择的哪个选项(来自tblConfig_qC表)

用户可以选择1到3个选项

通常,行可以是:

tblSubmissions

------------------------------------
| id | qC1     | qC2     | qC3     |
------------------------------------
| 1  | optionB |         |         |
| 2  | optionA | optionD | optionE |
| 3  | optionC | optionD | optionF |
| 4  | optionD | optionF |         |
------------------------------------

我需要做的是创建计数摘要:

-------------------------
| id | Options | Counts |
-------------------------
| 1  | optionA | 0      |
| 2  | optionB | 1      |
| 3  | optionC | 1      |
| 4  | optionD | 3      |
| 5  | optionE | 1      |
| 6  | optionF | 2      |
| 7  | optionG | 0      |
-------------------------

我可以为一个列执行此操作,但如何添加其他2的计数?

SELECT q.value AS 'Option',  
COUNT(s.qC1) AS 'qC1',
FROM tblConfig_qC q 
LEFT JOIN tblSubmission s ON q.value = s.qC1
group by q.value ORDER BY q.value;

0 个答案:

没有答案