【问题标题】:sql select statement, guide to correct select statementsql select语句,正确选择语句的指导
【发布时间】:2023-03-17 16:11:01
【问题描述】:

我应该编写一个 SQL 查询,该查询将选择所有当前已借出且已过期且应归还的图书,这些图书的价值大于来自图书馆系统的 $10.00。我应该返回借款人的姓名、地址、邮政编码和电话号码、负责交易的图书管理员的姓名和电话号码、图书归还日期以及姓名、费用和 ISBN 号的书。我的查询应该按返回日期降序排列。

这是我写的

Select a.returndate as booklended ,a.isbn_number as booklended, b. as borrower,          
                    b.address as borrower, b.postalcode as borrower, b. phonenumber as 
                    borrower, c.name as     librarian, c.phonenumber as librarian
                from booklended.a, librarian.c, borrower.b
   where a. librarian id= c.librarianid
       and a.librarycard = b.librarycard
         and returndate < curdate()
         and cost  > 10.00
                order by a. returndate desc;

但是我收到了这个错误 5:无效的模式名称:BOOKLENDED in statement [Select a.returndate as booklended ,a.isbn_number as booklended, b.作为借款人,b.address 作为借款人,b.postalcode 作为借款人,b. phonenumber 作为借用者,c.name 作为图书管理员,c.phonenumber 作为图书管理员

来自 booklended.a]

能否请我获得有关如何纠正此问题的指南。谢谢

【问题讨论】:

  • 错误提示“您没有名为 booklended 的数据库”。
  • a、b 和 c 是表的别名。根据您的数据库管理器,可以通过编写“booklended a”(无句点)或“booklended as a”来创建别名。看起来您的问题源于表名中使用句点。 'where' 语句看起来也有问题。
  • 另外,不要使用隐式(逗号)连接语法。改为使用显式 JOIN 语法。

标签: mysql sql


【解决方案1】:

试试这个:

Select a.returndate as booklended ,a.isbn_number as booklended,     
b.address as borrower, b.postalcode as borrower, b.phonenumber as 
borrower, c.name as librarian, c.phonenumber as librarian
from booklended a, librarian c, borrower b
where a. librarian id= c.librarianid
and a.librarycard = b.librarycard
and returndate < curdate()
and cost  > 10.00
order by a.returndate desc;

【讨论】:

    【解决方案2】:

    试试这个查询

    Select a.returndate as booklended ,a.isbn_number as isbnNumber, b.[YOUR COLUMNNAME FROM BORROWER TABLE] as borrower,        b.address as borrower, b.postalcode as borrower, b. phonenumber as borrower, c.name as     librarian, c.phonenumber as librarian
    
      from booklended as a, librarian as c, borrower as b
       where a.librarian id= c.librarianid
           and a.librarycard = b.librarycard
             and returndate < curdate()
             and cost  > 10.00
                    order by a. returndate desc;
    

    【讨论】:

    • 感谢您的回复,但是我收到以下错误。1:未找到列:B.AS 在语句中 [选择 a.returndate 作为借出日期,a.isbn_number 作为 isbnNumber,b。作为借款人,b.address 作为借款人,b.postalcode 作为借款人,b. phonenumber 作为借阅者,c.name 作为图书管理员,c.phonenumber 作为图书借阅的图书管理员作为 a,图书管理员作为 c,借阅者作为 b where a.librarian]
    • 将这些列添加到您的 table.thatsall
    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 2014-12-05
    • 2013-10-10
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多