2016-02-19 5 views
0

мне нужно присоединиться к 3 различных таблиц MySQL:SQL Multiple играя с графами

  • Таблица вопросов (представляет собой Questio)
  • на вопросы голосов таблица (представляет собой как на вопрос, когда Знак = 1 и в отличие от знака = 0)
  • Таблица ответов (представляет собой таблицу с ответами на конкретный вопрос).

трех таблиц имеют такую ​​структуру:

Questions 
-------------------------------------------- 
| ID | UserID | Title | Body | Date 
-------------------------------------------- 
| 1 | 32 | Is it raining? | BodyQuestion | 01/01/2016 
| 2 | 45 | Who are we? | BodyQuestion | 02/02/2016 
-------------------------------------------- 


QuestionsVotes 
-------------------------------------------- 
| ID | QuestionID | Sign 
-------------------------------------------- 
| 1 | 1   | 1 
| 2 | 2   | 1 
| 3 | 1   | 0 
| 4 | 1   | 1 
| 5 | 2   | 0 

Answers 
-------------------------------------------- 
| ID | QuestionID | UserID | Body 
-------------------------------------------- 
| 1 | 1 | 45 | Yes, it is. 
| 2 | 2 | 10 | Tricky question... 
| 3 | 1 | 67 | In Barcelona it is not 

Что нужно, это SQL-запрос, который возвращает, данный идентификатор Вопроса, чтобы вернуть столько строк, сколько числу ответов на вопрос получил каждый из которых связан с Вопросом.ID, Вопросы.UserID, Вопросы.Title, Questions.Body, Questions.Date, связанные с этим вопросы, несоответствия, связанные с вопросом, Answers.ID, Answers.UserID. Как вы видите, единственное изменение между строками - поля «Ответы».

SQL Output (for Question with ID=1) 
-------------------------------------------- 
| ID | UserID | Title | Body | Date | Likes | Unlikes | AnswerID | AnswerUserID 
-------------------------------------------- 
| 1 | 32 | Is it raining? | BodyQuestion | 01/01/2016 | 2 | 1 | 1 | 45 
| 1 | 32 | Is it raining? | BodyQuestion | 01/01/2016 | 2 | 1 | 3 | 67 

РЕДАКТИРОВАТЬ 1: Пример дано.

+0

Просьба представить выборочные данные и точный желаемый результат. –

+0

Не могли бы вы изменить этот вопрос и уточнить, что вы ищете. Я читаю ваш нижний абзац три раза и до сих пор не получаю то, что вы просите в терминах вывода. –

+0

Я добавил полный пример. – David103

ответ

0

Попробуйте это:

SELECT `ID` , `UserID` , `Title`, `Body`, `Date`, `Likes`, `Unlikes`, `AnswerID`, `AnswerUserID` 
FROM QUESTIONS q 
INNER JOIN ANSWERS a ON q.`ID` = a.`QuestionID` 
INNER JOIN QuestionVotes v ON q.`ID` = v.`QuestionID` 
+0

Проблема заключается в том, что «Likes» и «Unlikes» не являются реальным столбцом, а строками в таблице «Вопросы», которая представляет собой, когда Sign = 1 и в отличие от Sign = 0. В любом случае, спасибо. – David103

Смежные вопросы