内部联接如何嵌套?

克鲁帕尔·沙(Krupal Shah)

我是新手,正在SQL练习大学作业的查询...我在数据库中有三个表:

1.学生:

studentid pk

fname

school

2.书籍:

bookid pk

bookname

3.问题:

issueid pk

studentid fk

bookid fk

fine

我正在尝试解决此查询:

为已发行两本书或更多本书的学生选择booknamefine

我试过使用嵌套INNER JOINs作为:

 SELECT fname,bookname,AVG(fine) FROM 

    student INNER JOIN ( books INNER JOIN issue ON books.bookid=issue.bookid) ON 

    student.studentid=issue.issueid

GROUP BY fname

HAVING COUNT(bookid)>1;

但是失败了。是否有任何错误或JOIN如上所述完全嵌套s是完全错误的或者,如果有另一种方法可以使用,请提示我JOIN

朱利安克

您可以执行两个单独的联接:

SELECT fname,bookname,AVG(fine)
FROM student
INNER JOIN issue ON student.studentid=issue.issueid
INNER JOIN books ON books.bookid=issue.bookid 
GROUP BY fname
HAVING COUNT(bookid)>1;

另一种可能性是在同一表中的多个表上进行联接INNER JOIN

SELECT fname,bookname,AVG(fine)
FROM student
INNER JOIN (issue, books) ON (student.studentid=issue.issueid AND books.bookid=issue.bookid)
GROUP BY fname
HAVING COUNT(bookid)>1;

您的查询错误的原因仅仅是因为您没有使用正确的语法...:没有嵌套联接之类的东西。

该页面是用于联接的MySQL文档页面。您将找到许多有关如何处理联接的示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章