2009-07-28 12 views
0
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文の何が問題なのですか?

答えて

6

ジョインしかし、あなたは参加しそれぞれに個別にそれらをリストする必要があります。

SELECT * FROM Questions 
INNER JOIN QuestionKeyword ON Questions.ID=QuestionKeyword.QuestionID 
INNER JOIN Keywords ON QuestionKeyword.KeywordID=Keywords.ID 
WHERE Keywords.Keyword LIKE '%es%' 
+0

ありがとう、それは働いた:) –

1

あなたが句と2内部結合に1つずつだけ持っています。 INNER JOINでは、ONを伴う結合条件は必須です。したがって、SQLパーサーは混乱し、予期せずWHENを見ている可能性があります。

3

2つのJOINがありますが、1つのみがONです。あなたはおそらく、あなたが最初にINNER JOINをした後に "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%' 
3

をしたいです。

SELECT * 
FROM Questions 
    INNER JOIN QuestionKeyword 
     ON QuestionKeyword.QuestionID=Questions.ID 
    INNER JOIN Keywords 
     ON QuestionKeyword.KeywordID=Keywords.ID 
WHERE Keywords.Keyword LIKE '%es%' 
3

実行する参加ごとに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%' 

編集:くそー、私はタイピングを終えることができる前に他の4つの答え! :P

+0

ええ、スタックオーバーフローrocks;) –

2

あなたの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%' 

各INNER JOINの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%' 
2

は、としてそれを書き換えてみます。このような

何かが動作するはずです。

関連する問題