У меня есть 3 таблицыПолучение количество одних и тех же fileds в таблице SQL
1)question
2)options
3)answers
Таблица 1 содержит список вопросов множественного выбора. Таблица 2 содержит несколько вариантов ответа на вопрос.
Рассмотрим пример, у меня есть вопрос «Какая игра вам больше всего нравится?»
Он хранится в таблице 1 с идентификатором 1. Для этого вопроса в таблице 2 есть 3 варианта; как «крикет», «футбол», «теннис» с идентификаторами 1,2 & 3.
Когда пользователь отвечает на этот вопрос, идентификатор вопроса и идентификатор параметра хранятся в третьей таблице, как если бы он выбирал футбол, запись в таблице 3 указан идентификатор вопроса и идентификатор опции.
Если другой пользователь может выбрать ту же опцию Новая запись сохраняется в таблице 3.
Моя потребность в том, что я хочу, чтобы получить количество каждого вариантов в таблице 3.
Рассмотрим 10 пользователей выбрать крикет, 15 пользователи выбирают футбол, ни один пользователь не будет выбран в теннис, так что мне нужно посчитать, как 10,15,0 с соответствующей опцией ид
имя таблицы: вопросы
--------------------------------
| id | question |
--------------------------------
| 1 | which game u like most |
Название таблицы: Варианты
------------------------------------------------
| id | qid | option_name |
------------------------------------------------
| 1 | 1 | cricket |
------------------------------------------------
| 2 | 1 | football |
------------------------------------------------
| 3 | 1 | tennis |
------------------------------------------------
Таблица Название: ответы
--------------------------------------------
| id | qid | optionId |
--------------------------------------------
| 1 | 1 | 3 |
---------------------------------------------
| 2 | 1 | 3 |
----------------------------------------------
| 3 | 1 | 2 |
----------------------------------------------
В приведенной выше таблице означает, что 2 люди выбирают теннис, 1 люди выбирают футбол, и никто не выбрать крикет. Поэтому мне нужна таблица результатов, как
------------------------------------------------------
| id | question | option_name | count |
------------------------------------------------------
| 1 | which game u like most | cricket | 0 |
-------------------------------------------------------
| 2 | which game u like most | football | 1 |
-------------------------------------------------------
| 3 | which game u like most | tennis | 2 |
-------------------------------------------------------
Но когда я пытался, я не получить счетчик для игры в крикет, потому что ни один выбранный cricket.I должен получить счет в крикете как 0. Может ли один помочь мне решить эту проблему? My SQL код
SELECT count(an.optionId) count , op.option_name, q.question from
questions q, options op, answers an where q.id=1
and q.id=op.qid
and op.id=an.optionId
group by q.question, op.option_name
Серьезно? Вы действительно думаете, что мы сможем помочь вам с этой небольшой информацией? – Akshay
Если вам нравится, рассмотрите следующий простой двухэтапный курс действий: 1.Если вы еще этого не сделали, предоставьте правильные инструкции CREATE и INSERT (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry
@Akshay Если вы считаете, что вопрос неясен или неполный, подумайте об использовании вашего голосования. – Strawberry