我正在尝试检查输入的图书是否可用。我使用了BOOK
表来添加所有书籍。还有另一个名为BORROWED
的表,其中列出了Issuedate
,Returndate
。这是查询
select *
from BORROWED, BOOK
where BookCode = ?
and BORROWED.BookCode = BOOK.BookCode
and BORROWED.Returned is null
但显示此错误:
不明确的列名'BookCode'
答案 0 :(得分:2)
两个表中都有一个名为BookCode
的列。您需要为表命名。否则数据库引擎不知道你的意思。
SELECT *
FROM BORROWED
JOIN BOOK ON BORROWED.BookCode = BOOK.BookCode
WHERE BORROWED.BookCode = ?
AND BORROWED.Returned IS NULL
答案 1 :(得分:0)
您可以使用别名并加入
SELECT `b`.*
FROM `BORROWED` `b`
INNER JOIN `BOOK` AS `c` ON `c`.`BookCode` = `b`.`BookCode`
WHERE `b.`BookCode` = ?
AND `b`.`Returned` IS NULL
答案 2 :(得分:0)
由于两个表都具有相同的列名,因此生成了该错误消息。要防止出现这类错误,请习惯在查询中使用别名:
SELECT *
FROM BORROWED AS br
JOIN BOOK AS b
ON b.BookCode = br.BookCode
WHERE
br.BookCode = ?
AND br.Returned IS NULL