У меня есть настройки таблицы, как это:Формирование запросов на основе других запросов?
Пользователи Таблица:
ID | Username | Password
1 | Humza | 123
3 | God | 145
Вопросы Таблица:
Question_ID| Question_Title | Question | Rating | Category ID | User ID |
1 | Testing Display | Did it Work | 55 | 2 | 3 |
2 | Foo is love? | Same as Above | -100 | 2 | 1 |
3 | Bla | Baa Black XD | 909 | 2 | 1 |
Ответ Таблица:
Answer_ID| Answer | Answer_Rating | Answer_User_ID | Question_ID |
1 | YES | 909 | 1 | 2 |
2 | Wohoo | 15 | 3 | 2 |
Репутация Таблица:
Reputation_ID| Reputation | User_Rep_ID|
1 | -50 | 1 |
2 | 9999 | 3 |
Категория Таблица:
Category_ID | Category |
1 | Dr Who |
2 | Programming |
3 | Music |
Мой существующий запрос, чтобы выбрать вопросы из категории 2:
SELECT u.username, r.Reputation, q.Question_Title,
q.Question, q.Rating, c.Category, count(a.Answer_ID) as num_answers
FROM Questions q
INNER JOIN Users u ON u.id = q.User_ID
INNER JOIN Reputation r on r.User_Rep_ID = u.id
INNER JOIN Categorys c ON c.Category_ID = q.Category_ID
LEFT OUTER JOIN Answers a on q.Question_ID = a.Question_ID
WHERE q.Category_ID = 2
GROUP BY a.Question_ID
Однако по какой-то причине это не заберет из третьего вопроса, так что это не идеально.
Текущий запрос, чтобы выбрать ответы:
SELECT u.username as AnswerUserName,
a.Answer, a.Answer_Rating, r.Reputation as AnswerReputation
FROM Answers a
INNER JOIN Users u ON u.ID = a.Answer_User_ID
INNER JOIN Questions q on q.Question_ID = a.Question_ID
LEFT OUTER JOIN Reputation r ON r.User_Rep_ID = u.ID
WHERE a.Question_ID = q.Question_ID
Однако это, кажется, просто выбрать оба ответа, независимо от того, если вопрос имеет ответ или нет. таким образом, когда я запрашиваю все вопросы в категории 1, будут отображаться одни и те же ответы, и я не уверен, почему.
Сейчас я попытаюсь объяснить в меру моих способностей:
1) Мне нужно 3 Отдельный вопрос, который подберет мне все вопросы в категории 1, 2 и 3, а также пользователей, которые разместил их и их репутацию. В дополнение к этому, он должен также подсчитывать количество ответов на каждый вопрос в каждой категории. Редактировать - Готово
2) Мне нужен второй запрос, который даст мне ответы на вопросы, на которые есть ответы в каждой категории, имя пользователя, ответившего на вопрос и его репутацию.
Как бы я мог достичь этого? Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
Я слышал, что больше, чем когда-то о том, как мой запрос на самом деле работает лол, это не помогает, когда он работает, но его неправильно причина, то я не вижу проблемы EDIT: Спасибо Это решало 1 из моих многочисленных проблем =) – ShatteredPheonix