【问题标题】:MySQL error : #1242 - Subquery returns more than 1 rowMySQL 错误:#1242 - 子查询返回多于 1 行
【发布时间】:2016-07-13 21:42:34
【问题描述】:
SELECT BookId, Duedate, (SELECT Title FROM Book_Information WHERE BookId = BookId)
FROM Transaction_Information WHERE DueDate <= CURDATE() AND ReturnedDate IS NULL

book id 是 transaction_information 中的外键。 我想将书籍信息表中的Title字段添加到交易信息表中

【问题讨论】:

  • 显示两个表的create table code

标签: mysql mysql-error-1242


【解决方案1】:

由于Transaction_Information.BookId外键,它引用Book_Information 表中的相应行,那么一个简单的INNER JOIN 就可以完成这项工作。

这是查询:

SELECT
TF.BookId,
TF.Duedate,
BF.Title
FROM Transaction_Information TF
INNER JOIN Book_Information BF
ON TF.BookId = BF.BookId
WHERE TF.DueDate <= CURDATE() AND TF.ReturnedDate IS NULL;

【讨论】:

    【解决方案2】:

    试试这个查询:

    select * from Transaction_Information tf,Book_Information bf where tf.BookId = bf.BookID and tf.DueDate <= CURDATE() and tf.ReturneDate is null ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多