【问题标题】: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字段添加到交易信息表中
【问题讨论】:
标签:
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 ;