SELECT * FROM Questions
INNER JOIN QuestionKeyword INNER JOIN Keywords
ON Questions.ID=QuestionKeyword.QuestionID
AND QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
它說: 關鍵字'WHERE'附近的語法不正確。這條SQL語句有什麼問題?
SELECT * FROM Questions
INNER JOIN QuestionKeyword INNER JOIN Keywords
ON Questions.ID=QuestionKeyword.QuestionID
AND QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
它說: 關鍵字'WHERE'附近的語法不正確。這條SQL語句有什麼問題?
從多個同你不能合併的條件,但你必須與每個連接單獨列出來:
SELECT * FROM Questions
INNER JOIN QuestionKeyword ON Questions.ID=QuestionKeyword.QuestionID
INNER JOIN Keywords ON QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
你只得到了一個ON子句和兩個內部連接。對於INNER JOIN,使用ON加入條件是強制性的。所以SQL解析器可能會變得困惑,並且意外地看到你的時間。
您有兩個JOIN
s但只有一個ON
。您可能想要
SELECT
*
FROM
Questions
INNER JOIN QuestionKeyword ON Questions.ID = QuestionKeyword.QuestionID
INNER JOIN Keywords ON QuestionKeyword.KeywordID = Keywords.ID
WHERE
Keywords.Keyword LIKE '%es%'
您在第一個INNER JOIN後缺少「ON」。
SELECT *
FROM Questions
INNER JOIN QuestionKeyword
ON QuestionKeyword.QuestionID=Questions.ID
INNER JOIN Keywords
ON QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
對於您正在進行的每個連接,您必須擁有ON
子句。這應該可以解決它:
SELECT * FROM Questions
INNER JOIN QuestionKeyword
ON Questions.ID=QuestionKeyword.QuestionID
INNER JOIN Keywords
ON QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
編輯:媽的,其他四個答案之前,我可以完成的打字! :P
是的人,堆棧溢出岩石;) – 2009-07-28 09:28:19
你的INNER JOIN搞砸了。
像這樣的東西應該工作:
SELECT * FROM Questions
INNER JOIN QuestionKeyword ON Questions.ID=QuestionKeyword.QuestionID
INNER JOIN Keywords ON QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
嘗試重寫它:
SELECT *
FROM Questions
INNER JOIN QuestionKeyword ON Questions.ID=QuestionKeyword.QuestionID
INNER JOIN Keywords ON QuestionKeyword.KeywordID=Keywords.ID
WHERE Keywords.Keyword LIKE '%es%'
每個INNER JOIN需要相應的關鍵字ON和連接條件。
感謝他的工作:) – 2009-07-28 09:22:18