SQLite中的SQL OUTER JOIN语句和子查询

LibraryDB是一个数据库系统,可在假想的图书馆中跟踪有关书籍及其流通的信息。

下面给出了LibraryDB数据库的模式:

  • 借入(transactionID,personID *,借阅日期,到期日,返回日期)
  • 作者(authorID,名字,中间名,姓氏)
  • book_copy(bookID,bookdescID *)
  • 书籍(bookdescID,标题,字幕,版本,标题,卷号,语言,位置,年份,isbn,杜威,subjectID *)
  • 借款复制(交易ID *,书ID *)
  • 人员(人员ID,名字,中间名,姓氏,地址,城市,邮政编码,电话号码,电子邮件地址,studentno,idcardno)
  • 发布者(publisherID,publisherfullname)
  • writer_by(bookdescID *,authorID *,角色)
  • Published_by(bookdescID *,publisherID *,角色)
  • 主题(subjectID,subjecttype)

带下划线的主键。外键用星号(*)表示。

在SQLite中为以下任务编写SQL查询:

  1. 显示从未借过的书的标题。
  2. 一个。使用LEFT OUTER JOINs编写查询。
  3. b。使用子查询并且不使用OUTER JOIN再次编写查询。
评论
  • 任性
    任性 回复

    你好

    使用以下查询

    select bc.title from book b
    inner join book_copy bc
    on (b.bookdescID = bc.bookdescID)
    left outer join borrow_copy boc
    on (bc.bookID = boc.bookID)
    where boc.bookID is null;
    
    
    select title from book where bookdescID in 
    (select bookdescID from book_copy where bookID not in 
    (select bookID from borrow_copy));