我建立了三张表,读者表(ReaderID,Name,Dept,Addess),书籍表(BookID,Title,Author,Publisher),借阅表

(ReaderID,BookID,BorrowDate)。.现在文本框输入 ReaderID 的值,点击确定,想从借阅表得到一条记录,然后根据这条记录的BookID从书籍表得到Title,根据这条记录的
ReaderID从读者表得到Name,Dept,并得到借阅表的这条记录的BorrowDate。
然后在列表框显示这四个字段的值。请问sql 语句该怎么写呢?
find="select Name,Dept,Title,BorrowDate from Reader,Book,Borrow ";
find=find + "where Borrow.ReaderID='"+readerID+"' and Reader.ReaderID=";
find=find + "Borrow.ReaderID and Book.BookID=Borrow.BookID";
不知道错在哪儿了?
可以显示姓名和部门,后两个字段无法显示。而且提示“from 子句语法错误”
readerID为编辑框变量。

在这里,多谢大家了!!!!!!!!

select c.Title, b.Name, b.Dept, a.BorrowDate
from Borrow a
left join Reader b on a.ReaderID=b.ReaderID
left join Book c on a.BookID=c.BookID
where a.ReaderID='要搜索的ID号'

你的写法应该也对,你可以查一下传进去的readerID是不是有什么问题,简单的办法就是跟一下find最后合成的语句是什么,可能在拼字符串的时候拼错了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-25
可以在数据库中利用这三个表建一个查询(或视图),调试通过后,将其代码复制到网页代码中修改。追问

有没有sql 语句呀?

追答

上述问题处在下面的语句中
find="select Name,Dept,Title,BorrowDate from Reader,Book,Borrow ";
find=find + "where Borrow.ReaderID='"+readerID+"' and Reader.ReaderID=";
find=find + "Borrow.ReaderID and Book.BookID=Borrow.BookID";

本回答被网友采纳
第2个回答  2011-04-30
echo 下这个sql语句看看是什么。如果echo 出来的sql语句发现不了错误,就把sql语句拿到mysql里面执行,会提示错误
相似回答