0

このクエリは実行されません..この問題を解決してください..

select q.id,q.name,qq.text 
from quiz q,quiz_question qq 
where qq.quiz_id='1'

テーブル:

quiz
   id,name
quiz_question
   id,quiz_id,text
4

4 に答える 4

2

クエリに問題はありません。実行されると思いますが、間違った結果が得られます。あなたはテーブルにcross 参加しています。私はあなたが欲しいと思います:

select q.id, q.name, qq.text 
from   quiz q,quiz_question qq 
where qq.quiz_id = '1' AND
      q.id=qq.quiz_id

しかし、これを行う方が良い

select q.id, q.name, qq.text 
from   quiz q INNER JOIN quiz_question qq 
           on q.id=qq.quiz_id
where  qq.quiz_id = '1'

もう1つ、IDが次のnumber場合は、一重引用符で囲む必要はありません。

select q.id, q.name, qq.text 
from   quiz q INNER JOIN quiz_question qq 
           on q.id=qq.quiz_id
where  qq.quiz_id = 1
于 2012-07-20T08:02:35.457 に答える
1
select q.id,q.name,qq.text 
from quiz q inner join quiz_question qq on q.id = qq.quiz_id
where q.quiz_id='1';

また

select q.id,q.name,qq.text 
from quiz q inner join quiz_question qq on q.id = qq.quiz_id and q.quiz_id='1';
于 2012-07-20T08:06:33.380 に答える
0

従来の SQL 構文を使用しないでください。テーブルを結合する場合は、expiclit を使用しますjoin

select q.id, q.name, qq.text 
from quiz q
inner join quiz_question qq on q.id = qq.quiz_id
where q.id = 1
于 2012-07-20T08:04:25.533 に答える
0

あなたがする必要があるのは、テーブルを一緒に結合することですquiz_id.

これは次のように実行できます。

 SELECT
  q.id,q.name,
  qq.text
 FROM
  quiz q
  INNER JOIN quiz_question qq ON ( q.id = qq.quiz_id )
 WHERE
  q.id = 1
于 2012-07-20T08:07:08.233 に答える