2016-02-19 35 views
0

我需要參加3個不同的MySQL表連接:SQL多帶計數

  • 的問題表(代表questio)
  • 的問題投票表格(表示喜歡的問題時,登錄= 1不同於當Sign = 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,以儘可能多的行返回的答案的問題已收到數每一個都與Questions.ID,Questions.UserID,Questions.Title,Questions.Body,Questions.Date,與問題相關的喜歡,與問題相關的unlikes,Answers.ID,Answers.UserID。如您所見,行之間的唯一更改是Answers字段。

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 

EDIT 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

問題是'喜歡'和'不喜歡'不是真正的列,而是QuestionsVotes表中的行,它表示Sign = 1時的情況,而當Sign = 0時表示不同。不管怎樣,謝謝你。 – David103