我正在为具有以下四个表的库创建数据库。
表1 - 预订
isbn title author
111-2-33-444444-5 Pro JavaFX Dave Smith
222-3-44-555555-6 Oracle Systems Kate Roberts
333-4-55-666666-7 Expert jQuery Mike Smith
表2 - 复制
code isbn duration
1011 111-2-33-444444-5 21
1012 111-2-33-444444-5 14
1013 111-2-33-444444-5 7
2011 222-3-44-555555-6 21
3011 333-4-55-666666-7 7
3012 333-4-55-666666-7 14
表3 - 学生
no name school embargo
2001 Mike CMP No
2002 Andy CMP Yes
2003 Sarah ENG No
2004 Karen ENG Yes
2005 Lucy BUE No
表4 - 贷款
code no taken due return
1011 2002 2015.01.10 2015.01.31 2015.01.31
1011 2002 2015.02.05 2015.02.26 2015.02.23
1011 2003 2015.05.10 2015.05.31
1013 2003 2014.03.02 2014.03.16 2014.03.10
1013 2002 2014.08.02 2014.08.16 2014.08.16
2011 2004 2013.02.01 2013.02.22 2013.02.20
3011 2002 2015.07.03 2015.07.10
3011 2005 2014.10.10 2014.10.17 2014.10.20
我一直在尝试创建一个SELECT查询,从“book”获取isbn和title,来自“student”的no和name,但只显示持续7天的书籍的结果。
我尝试使用INNER JOIN加入表,并使用'copy'表中的'code'的LIKE子句来过滤持续时间但似乎没有任何对我有用。我加入'book'和'student'时遇到了麻烦,因为他们没有共同的专栏。有办法解决这个问题吗?
修改
好的,以下查询似乎在大多数情况下都能正常工作,除了最后的WHERE LIKE之外;
SELECT book.isbn, book.title,
copy.code, copy.duration,
student.no, student.name
FROM book
INNER JOIN copy
ON copy.isbn = book.isbn
INNER JOIN loan
ON loan.code = copy.code
INNER JOIN student
ON student.no = loan.no
WHERE copy.code LIKE 1013
AND copy.code LIKE 3011
我也试过
WHERE copy.code LIKE 1013 AND 3011
仅显示1013的结果。我可能会遗漏一些简单的,有任何建议吗?
答案 0 :(得分:4)
图书与学生
之间似乎没有直接关系因此我们 在图书和学生之间存在间接关系
尝试使用此尺寸:
SELECT book.isbn
, book.title
, book.author
, copy.code
, copy.duration
, loan.taken
, loan.due
, loan.return
, student.no
, student.name
, student.school
, student.embargo
FROM book
INNER
JOIN copy
ON copy.isbn = book.isbn
INNER
JOIN loan
ON loan.code = copy.code
INNER
JOIN student
ON student.no = loan.no
P.S。你控制这个数据结构?如果是这样,可以推荐一些变化。