SQL Server查询以检查库中书籍的可用性

时间:2016-10-23 18:15:06

标签: sql-server

我正在尝试检查输入的图书是否可用。我使用了BOOK表来添加所有书籍。还有另一个名为BORROWED的表,其中列出了IssuedateReturndate。这是查询

select * 
from BORROWED, BOOK 
where BookCode = ? 
  and BORROWED.BookCode = BOOK.BookCode 
  and BORROWED.Returned is null 

但显示此错误:

  

不明确的列名'BookCode'

3 个答案:

答案 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