我必须使用MySQL名为“QUIZ”和“CHAPTER”的表,如下所示
测验
qid | quizname | chapterid
=========================
1 | quiz1 | 0
-------------------------
2 | quiz3 | 1
-------------------------
3 | quiz3 | 2
-------------------------
章节:
chapterid | chaptername
=========================
1 | chpter1
-------------------------
2 | chpter2
-------------------------
3 | chpter3
-------------------------
现在我想从测验表中得到测验的细节,其中quizid=1。
我的sql查询是
"SELECT quiz.qid, quiz.quizname, chapter.chaptername from quiz, chapter
where quiz.chapterid=chapter.chapterid and quiz.qid=1"
但我没有结果。
所以请告诉我有什么问题吗?
最佳答案
您可以看到chapterd0不在Chapter表中,这就是为什么查询不返回任何内容(这是正确的)。
如果您确实希望它从测试表返回quizname,即使章节id无效,也应该使用左外部联接。这样地:
SELECT quiz.qid, quiz.quizname, chapter.chaptername
from quiz
left outer join chapter On quiz.chapterid=chapter.chapterid
Where quiz.qid=1
显然,返回的chaptername将为空。(注意:我把上面的代码展示给你看左外连接的想法。查看我可能忽略的任何MySql特定语法。