2013-04-15 30 views
1

我想知道關於另一個語法錯誤:我的SQL語法中的另一個錯誤?

SELECT * FROM forum_question 
    WHERE category='art' 
     LEFT JOIN forum_answer ON (forum_question.id = forum_answer.question_id) 
    GROUP BY forum_question.id 
ORDER BY a_datetime DESC; 

我得到的錯誤是這樣的:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN forum_answer ON (forum_question.id = forum_answer.question_id) GROUP B' at line 1

感謝。

回答

2

WHERE子句應該在FROM子句之後。 JOIN語句是FROM條款

SELECT * 
FROM forum_question 
     LEFT JOIN forum_answer 
      ON (forum_question.id = forum_answer.question_id) 
WHERE category='art' 
GROUP BY forum_question.id 
ORDER BY a_datetime DESC; 
+1

謝謝,這似乎上班! – asbxzeeko

+0

不客氣':D' –

0

首先join的一部分,然後使用where條款:

SELECT * FROM forum_question 
    LEFT JOIN forum_answer ON (forum_question.id = forum_answer.question_id) 
    WHERE forum_question.category='art' 
    GROUP BY forum_question.id 
    ORDER BY a_datetime DESC; 
+0

Downvoter:謹慎解釋? – 2013-04-17 01:54:15

+1

哇,-2正確答案!爲什麼是人? –

+0

@ypercube - 因爲有很多懦夫喜歡開車報復, – 2013-05-27 18:03:26

1

WHERE條款應是JOIN條款後

SELECT * 
FROM forum_question 
     LEFT JOIN forum_answer 
      ON (forum_question.id = forum_answer.question_id) 
WHERE category='art' 
GROUP BY forum_question.id 
ORDER BY a_datetime DESC;