このクエリは実行されません..この問題を解決してください..
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
このクエリは実行されません..この問題を解決してください..
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
クエリに問題はありません。実行されると思いますが、間違った結果が得られます。あなたはテーブルに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
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';
従来の 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
あなたがする必要があるのは、テーブルを一緒に結合することです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